• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mauro.edgar

Alterar AUTO_INCREMENT

9 mensagens neste tópico

Boas

Estou com uma dificuldade na alteração do  AUTO_INCREMENT de uma tabela.

Se eu puser o código assim (numero directo no código) ele altera correctamente.

$alter = "alter table atest_residencia AUTO_INCREMENT = 100 ";

		// resultado da alteração
		$results = mysql_query($alter);
		if ($results===false)
			{echo "Erro na introdução de dados...." . mysql_error(). "<br/>";} 
		else
			{
				header("Location: reinicioatestados_sucesso.php");
			}

Agora se for para alterar o número através de uma variável ele não altera, assim:

require_once 'ligacao.inc.php';

$numero = isset($_POST['numero']) ? $_POST['numero'] : $_SESSION['numero'];


if ($numero =!"")
{

		$alter = "alter table atest_residencia AUTO_INCREMENT = $numero ";

		// resultado da alteração
		$results = mysql_query($alter);
		if ($results===false)
			{echo "Erro na introdução de dados...." . mysql_error(). "<br/>";} 
		else
			{
				header("Location: reinicioatestados_sucesso.php");
			}

}
else
{
header("Location: password_erro.php");	
}

O que estou a fazer de errado??? Já pus aspas, tirei aspas e nada..

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque nao entras directamente na base de dados com o sqlyog(pessoalmente gosto), ou com o mysql administrator ou outros que ha por ai e mudas muito mais facilmente..

Espero ter ajudado ;)

abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu utililizo o phpmyadmin para aceder directamente à bd. Eu sei que directamente consigo alterar, mas eu queria alterar isso através de um form, passo a explicar.

Existe uma numeração de atestados pedidos e fiz um form para no fim do ano essa numeração ser reiniciada para o numero que eles querem, tipo poem-se um numero e a partir daí os atestados passam a ter esse numero para a frente, se é que me fiz entender...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boax...

Fiquei curioso, para que queres alterar o auto increment?

eu acho que percebo a pergunta....

do codigo nao da para ver se o auto-increment é chave primaria ou nao...

mas se for... :nono:

uma das regras é: uma chave primaria utilizada nunca deve ser reutilizada... por varios motivos obvios...

se for uma chave composta por esse auto-increment mais uma data, como fazes  o controlo  se tiveres varios tipos de documentos?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim de facto esse campo é chave primária.talvez por isso não consiga....

No caso de outro documento isso não acontece, pois tenho uma tabela para cada tipo de documento, percebes?

Será que tenho mesmo de utilizar uma chave composta??? Porque como eu referi, no próprio código se eu escrever um numero qualquer ele atribui, agora se for através de uma variável não.

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boax ....

No caso de outro documento isso não acontece, pois tenho uma tabela para cada tipo de documento

:nono1:

quanto ao codigo...

$alter = "alter table atest_residencia AUTO_INCREMENT = $numero ";

parto do principio que $numero esta bem carregado..

$alter = "alter table atest_residencia AUTO_INCREMENT = ".$numero ;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, se fizer um echo dessa variável ela aparece com o valor correcto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para colocarem dúvidas existe uma secção interna em cada àrea denominada Dúvidas e Ajudas.

Por favor utilizem essa secção de forma a poupar trabalho aos Moderadores para moverem tópicos.

Obrigado

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora