1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[ajuda] PHP + MySQL

Discussão em 'Web Development' iniciada por anjo2, 12 de Setembro de 2007. (Respostas: 10; Visualizações: 725)

  1. anjo2

    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.
     
  2. MARSHALL

    MARSHALL Power Member

    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.
     
  3. anjo2

    anjo2 Power Member

    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
     
  4. mascker

    mascker Power Member

    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
     
  5. p3dro

    p3dro Power Member

    vê se esta função te ajuda mysql_insert_id

    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: 12 de Setembro de 2007
  6. anjo2

    anjo2 Power Member

    o meu problema é que quando não existe queria definir como id = 1
     
  7. p3dro

    p3dro Power Member

    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_check0,"max_id");   
      if(!
    $id$id=1;
    }
     
  8. anjo2

    anjo2 Power Member

    Não :S


    EDIT: Resolvido, obrigada
     
    Última edição: 12 de Setembro de 2007
  9. p3dro

    p3dro Power Member

    resolveste como?
     
  10. anjo2

    anjo2 Power Member

    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;
     
  11. AliFromCairo

    AliFromCairo Power Member

    Tb aconselho a definires o campo como auto_increment.
     

Partilhar esta Página