Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nirvana

[Resolvido] Como gerar ID com numeros aleatorios

Recommended Posts

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

ja tentou definir algum campo no banco de dados como auto-increment?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.