View Full Version : [ajuda] PHP + MySQL
Isto pode ser um erro estúpido e eu não o estar a ver, mas vou perguntar na mesma porque não estou a conseguir resolver :(
tenho:
$sql_id_check = mysql_query("SELECT id FROM $seccao ORDER BY id DESC");
if ($sql_id_check) $id = mysql_result($sql_id_check, 0, id);
else $id = 1;
Isto devia ir buscar o ultimo id da tabela, e se tivesse vazia, o id era 1, o que está errado?
Isto só não funciona quando a tabela está vazia.
MARSHALL 12-09-2007, 17:54 Pelo que vejo tu na busca não filtras nada, por isso basta ter algo na tabela para ele encontrar alguma coisa.
Não estou a entender o que queres fazer.
Pelo que vejo tu na busca não filtras nada, por isso basta ter algo na tabela para ele encontrar alguma coisa.
Não estou a entender o que queres fazer.
Isto era para adicionar o conteudo, mas primeiro ver o ultimo id que era para adicionar com um id logo a seguir, mas se ainda não houvesse nenhum começava com o id = 1, só que não faz :S
Boas,
Para isso defines o campo na tabela como auto_increment que ele faz a numeração sozinho.
Não precisas de fazer isso em php...
Saudações
Isto era para adicionar o conteudo, mas primeiro ver o ultimo id que era para adicionar com um id logo a seguir, mas se ainda não houvesse nenhum começava com o id = 1, só que não faz :S
vê se esta função te ajuda mysql_insert_id (http://pt.php.net/mysql_insert_id)
Description
int mysql_insert_id ( [resource $link_identifier] )
Retrieves the ID generated for an AUTO_INCREMENT column by the previous INSERT query.
Caso o mysql_insert_id, não se aplique ao teu problema, podes por ex. usar:
$sql_id_check = mysql_query("Select max(`id`) as `MaxID` From `$seccao`");
E depois vês o valor que devolve, se for um número incrementas 1, senão atribuis o valor 0
Pois, se o teu problema foi mesmo o auto_increment, basta então fazeres o que o mascker indicou. Mas o teu campo ID não é chave primária da tabela?
o meu problema é que quando não existe queria definir como id = 1
vê se desta maneira funciona ...
$sql_id_check = mysql_query("SELECT max(id) as max_id FROM $seccao");
if ($sql_id_check){
$id = mysql_result($sql_id_check, 0,"max_id");
if(!$id) $id=1;
}
Não :S
EDIT: Resolvido, obrigada
Não :S
EDIT: Resolvido, obrigada
resolveste como?
Fui rever tudo desde o inicio e vi que o erro não estava ali, quando o código começa a ser grande às vezes há falhas estúpidas.
de qualquer forma, se alguem vier a precisar, deixei assim:
$sql_id_check = mysql_query("SELECT id FROM $seccao ORDER BY id DESC LIMIT 1");
if ($sql_id_check) {
$id = mysql_result($sql_id_check, 0, 'id');
$id += 1;
}
else $id=1;
AliFromCairo 12-09-2007, 22:33 Boas,
Para isso defines o campo na tabela como auto_increment que ele faz a numeração sozinho.
Não precisas de fazer isso em php...
Saudações
Tb aconselho a definires o campo como auto_increment.
|
|