[ajuda] PHP + MySQL

anjo2

Power Member
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:
Código:
$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.
 
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

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:
PHP:
$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?
 
Última edição:
vê se desta maneira funciona ...

PHP:
$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;
}
 
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:

Código:
$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;
 
Back
Topo