nirvana 0 Denunciar post Postado Dezembro 31, 2011 Eh o seguinte estou precisando muito que o meu codigo gere id aleatorias, para corrigir um erro de repetição de dados mas não tenho ideia de como fazer to postando o meu codigo, para vocês darem uma olhada, percebo que a unica coisa que a linha 4 faz é toda vez que cadastra ele pega a id no bd e soma 1..Por favor me ajudem... 1 $qc = "select job_id from job_post order by job_id desc"; 2 $rc = mysql_query($qc) or die(mysql_error()); 3 $ac = mysql_fetch_array($rc); 4 $job_id = $ac[0] + 1; $position = strip_tags($position); $description = strip_tags($description); $q3 = "insert into job_post set job_id = \"$job_id\", ename = \"$_SESSION[ename]\", CompanyCountry = \"$_POST[CompanyCountry]\", Company = \"$a2[CompanyName]\", position = \"$position\", EXmonth = \"$EXmonth\", EXday = \"$EXday\", EXyear = \"$EXyear\" "; $r3 = mysql_query($q3) or die(mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 31, 2011 ja tentou definir algum campo no banco de dados como auto-increment? Compartilhar este post Link para o post Compartilhar em outros sites
nirvana 0 Denunciar post Postado Dezembro 31, 2011 ja tentou definir algum campo no banco de dados como auto-increment? Ja tentei aparece o seguinte: ALTER TABLE `job_post` CHANGE `job_id` `job_id` INT( 10 ) NULL DEFAULT NULL AUTO_INCREMENT Mensagens do MySQL : Documentação #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key Compartilhar este post Link para o post Compartilhar em outros sites
_Rafhael_ 2 Denunciar post Postado Dezembro 31, 2011 sua tabela já tem um campo auto inclementementavel por isso não consegue tornar este campo auto inclemetavel. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 31, 2011 posta ai a sua tabela..... fica mais facil de ver o q esta errado e como corrigir. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Dezembro 31, 2011 Ja tentei aparece o seguinte: ALTER TABLE `job_post` CHANGE `job_id` `job_id` INT( 10 ) NULL DEFAULT NULL AUTO_INCREMENT Mensagens do MySQL : Documentação #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key O correto seria: ALTER TABLE `job_post` CHANGE `job_id` `job_id` INT( 11 ) NOT NULL AUTO_INCREMENT Compartilhar este post Link para o post Compartilhar em outros sites
nirvana 0 Denunciar post Postado Janeiro 1, 2012 posta ai a sua tabela..... fica mais facil de ver o q esta errado e como corrigir. Bom o meu site é de empregos online o usuario/empresa cadastra uma vaga e o usuario/candidato candidata a ela,o usuário/empresa lista todos os candidatos daquela vaga,beleza o problema é o seguinte porque por exemplo, o usuário/empresa, cadastra uma vaga ID = 1, e depois outra ID =2...assim por diante,passa um tempo esta vaga expira ou usuário/empresa a exclui as 2 vagas, a ID 1 e ID 2, fica disponivel um outro usuário ou o mesmo cadastra uma nova vaga e reaproveita a ID 1 ou ID 2,quando ele lista os curriculos daquela vaga aparece os candidatos da vaga excluida/expirada..,se tivesse uma funçao que gerasse uma Id "1254", outra "5558" e não 1 , 2, 3..., eu acho que daria certo, nossa que bagunça não sei se da pra entender a minha tabela eh. CREATE TABLE `job_post` ( `job_id` int(10) default NULL, `ename` varchar(10) NOT NULL default '', `Company` varchar(100) NOT NULL default '', `CompanyCountry` varchar(200) NOT NULL default '', `position` varchar(100) NOT NULL default '', `JobCategory` varchar(150) NOT NULL default '', `description` text NOT NULL, `j_target` varchar(150) NOT NULL default '0', `salary` varchar(10) NOT NULL default '0', `s_period` varchar(10) NOT NULL default '', `EXmonth` char(2) NOT NULL default '', `EXday` char(2) NOT NULL default '', `EXyear` varchar(4) NOT NULL default '', `nv` int(5) NOT NULL default '0', `CompanyState` varchar(100) NOT NULL default '', `cidade` varchar(150) NOT NULL default '', `estado` varchar(10) NOT NULL default '', `requisitos` text NOT NULL, `vaga` varchar(10) NOT NULL default '', `JobIn` varchar(255) NOT NULL default '', `postdate` varchar(200) NOT NULL default 'none', `viewed` int(3) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Compartilhar este post Link para o post Compartilhar em outros sites
Douglas Godoy 0 Denunciar post Postado Janeiro 2, 2012 Bom o meu site é de empregos online o usuario/empresa cadastra uma vaga e o usuario/candidato candidata a ela,o usuário/empresa lista todos os candidatos daquela vaga,beleza o problema é o seguinte porque por exemplo, o usuário/empresa, cadastra uma vaga ID = 1, e depois outra ID =2...assim por diante,passa um tempo esta vaga expira ou usuário/empresa a exclui as 2 vagas, a ID 1 e ID 2, fica disponivel um outro usuário ou o mesmo cadastra uma nova vaga e reaproveita a ID 1 ou ID 2,quando ele lista os curriculos daquela vaga aparece os candidatos da vaga excluida/expirada..,se tivesse uma funçao que gerasse uma Id "1254", outra "5558" e não 1 , 2, 3..., eu acho que daria certo, nossa que bagunça não sei se da pra entender a minha tabela eh. CREATE TABLE `job_post` ( `job_id` int(10) default NULL, `ename` varchar(10) NOT NULL default '', `Company` varchar(100) NOT NULL default '', `CompanyCountry` varchar(200) NOT NULL default '', `position` varchar(100) NOT NULL default '', `JobCategory` varchar(150) NOT NULL default '', `description` text NOT NULL, `j_target` varchar(150) NOT NULL default '0', `salary` varchar(10) NOT NULL default '0', `s_period` varchar(10) NOT NULL default '', `EXmonth` char(2) NOT NULL default '', `EXday` char(2) NOT NULL default '', `EXyear` varchar(4) NOT NULL default '', `nv` int(5) NOT NULL default '0', `CompanyState` varchar(100) NOT NULL default '', `cidade` varchar(150) NOT NULL default '', `estado` varchar(10) NOT NULL default '', `requisitos` text NOT NULL, `vaga` varchar(10) NOT NULL default '', `JobIn` varchar(255) NOT NULL default '', `postdate` varchar(200) NOT NULL default 'none', `viewed` int(3) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Olá Nirvana. Lendo sua dúvida vi que posso ajudá-lo. Não trabalho com programação, tenho programação apenas como um dos meus Hobbies e comecei a estudar o Php mais afundo agora nas férias de fim de ano, pois quero partir para esta área, por isso se o código parecer um pouco estranho não estranhe. Vi que seu código refere-se um site de empregos, conheço bem esta área, pois trabalho na área de negócios do maior site de empregos da américa latina. Mas vamos ao que interessa. :D Sugiro que você crie sua tabela da seguinte maneira. CREATE TABLE jobpost( `job_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `ename` varchar(10) NOT NULL default '', `Company` varchar(100) NOT NULL default '', `CompanyCountry` varchar(200) NOT NULL default '', `position` varchar(100) NOT NULL default '', `JobCategory` varchar(150) NOT NULL default '', `description` text NOT NULL, `j_target` varchar(150) NOT NULL default '0', `salary` varchar(10) NOT NULL default '0', `s_period` varchar(10) NOT NULL default '', `EXmonth` char(2) NOT NULL default '', `EXday` char(2) NOT NULL default '', `EXyear` varchar(4) NOT NULL default '', `nv` int(5) NOT NULL default '0', `CompanyState` varchar(100) NOT NULL default '', `cidade` varchar(150) NOT NULL default '', `estado` varchar(10) NOT NULL default '', `requisitos` text NOT NULL, `vaga` varchar(10) NOT NULL default '', `JobIn` varchar(255) NOT NULL default '', `postdate` varchar(200) NOT NULL default 'none', `viewed` int(3) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; PS: Que mudei apenas a primeira linha da mesma. `job_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , Faça o teste, crie sua vaga, e depois a exclua. Verá que ao lançar a próxima vaga a mesma não irá repetir-se! Com esta opção ele não vai gerar uma id aleatória, mas sim um id sequencial, sem repetição e re-criação de id's. Compartilhar este post Link para o post Compartilhar em outros sites
Elemke 3 Denunciar post Postado Janeiro 2, 2012 você poderia criar um novo campo na tabela e usar a função uniqid(). Compartilhar este post Link para o post Compartilhar em outros sites
nirvana 0 Denunciar post Postado Janeiro 3, 2012 Olá Nirvana. Lendo sua dúvida vi que posso ajudá-lo. Não trabalho com programação, tenho programação apenas como um dos meus Hobbies e comecei a estudar o Php mais afundo agora nas férias de fim de ano, pois quero partir para esta área, por isso se o código parecer um pouco estranho não estranhe. Vi que seu código refere-se um site de empregos, conheço bem esta área, pois trabalho na área de negócios do maior site de empregos da américa latina. Mas vamos ao que interessa. :D Sugiro que você crie sua tabela da seguinte maneira. CREATE TABLE jobpost( `job_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `ename` varchar(10) NOT NULL default '', `Company` varchar(100) NOT NULL default '', `CompanyCountry` varchar(200) NOT NULL default '', `position` varchar(100) NOT NULL default '', `JobCategory` varchar(150) NOT NULL default '', `description` text NOT NULL, `j_target` varchar(150) NOT NULL default '0', `salary` varchar(10) NOT NULL default '0', `s_period` varchar(10) NOT NULL default '', `EXmonth` char(2) NOT NULL default '', `EXday` char(2) NOT NULL default '', `EXyear` varchar(4) NOT NULL default '', `nv` int(5) NOT NULL default '0', `CompanyState` varchar(100) NOT NULL default '', `cidade` varchar(150) NOT NULL default '', `estado` varchar(10) NOT NULL default '', `requisitos` text NOT NULL, `vaga` varchar(10) NOT NULL default '', `JobIn` varchar(255) NOT NULL default '', `postdate` varchar(200) NOT NULL default 'none', `viewed` int(3) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; PS: Que mudei apenas a primeira linha da mesma. `job_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , Faça o teste, crie sua vaga, e depois a exclua. Verá que ao lançar a próxima vaga a mesma não irá repetir-se! Com esta opção ele não vai gerar uma id aleatória, mas sim um id sequencial, sem repetição e re-criação de id's. Amigo isso mesmo deu certo,muito obrigado, Sucesso... você pode me ajudar com este tópico? http://forum.imasters.com.br/topic/453153-update-dados-formulario/page__view__findpost__p__1792482__fromsearch__1 Compartilhar este post Link para o post Compartilhar em outros sites
Douglas Godoy 0 Denunciar post Postado Janeiro 4, 2012 Amigo isso mesmo deu certo,muito obrigado, Sucesso... você pode me ajudar com este tópico? http://forum.imasters.com.br/topic/453153-update-dados-formulario/page__view__findpost__p__1792482__fromsearch__1 Olá Nirvana! Peço desculpas na demora para responder, é que estou com um problema em meu windows 7 e minha máquina está praticamente off. Tenho um código que pode ter ajudar nesta questão, espero que não seja muito urgente, pois logo mais te enviarei. Só uma dúvida, este sistema que você está desenvolvendo é para seu trabalho ou seu? Abraços Compartilhar este post Link para o post Compartilhar em outros sites
nirvana 0 Denunciar post Postado Janeiro 5, 2012 Olá Nirvana! Peço desculpas na demora para responder, é que estou com um problema em meu windows 7 e minha máquina está praticamente off. Tenho um código que pode ter ajudar nesta questão, espero que não seja muito urgente, pois logo mais te enviarei. Só uma dúvida, este sistema que você está desenvolvendo é para seu trabalho ou seu? Abraços Olá amigo sem problemas..., é meu mesmo.. Obrigado Compartilhar este post Link para o post Compartilhar em outros sites