Visualizzazione dei risultati da 1 a 8 su 8

Discussione: resettare id

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027

    resettare id

    buona sera a tutti,

    una domanda semplice però che ho provato a farlo codificamente parlando e non mi funziona,
    se ho un valore di una tab di un db chiamiamolo ID impostato come autoincrement e voglio che si resetti a 0 come faccio?

    io avevo fatto così:

    Codice PHP:
    $sql="SELECT * FROM agenda ORDER BY id DESC LIMIT 2";
    if(!
    mysql_query($sql,$con)){
      die(
    'Errore: ' mysql_error());
    }
    $query=mysql_query($sql) or die("Impossibile eseguire il comando: ".mysql_error());
    if(!
    $result=mysql_fetch_array($query)){
    $result['id']=0;
    }
    else{
    ....... 
    IL CODICE QUI DENTRO INVECE MI FUNZIONA ANCHE QUANDO LA TABELLA è VUOTA E L'ID CONTINUA AD INCREMENTARE...

    grazie mille in anticipo per il vostro aiuto

  2. #2
    Non è molto chiaro cosa vuoi fare, o meglio parli di resettare l'autoincrement e poi dall'esempio non si comprende molto cosa intendi fare.
    Comunque se ti interessa resettare il valore di un campo autoincremente la sintassi è la seguente:
    codice:
    ALTER TABLE `nome_tabella` AUTO_INCREMENT =1
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    ahahah ti mangio il cervello anche su questo topic così
    allora lo sto resettando manualmente per far si che parte sempre da 1... però vorrei resettarlo in automatico, ovvero quando la query risulta vuota vorrei settare autoincrement ad uno... e io ho provato a fare così:

    Codice PHP:
    $con=mysql_connect("localhost","root","");
    if(!
    $con){
      die(
    'Impossibile connettersi a: ' mysql_error());
    }
    mysql_select_db("davidedurante"$con);
    mysql_set_charset("utf8"$con);
    $sql="SELECT * FROM com_stmp ORDER BY id DESC LIMIT 1";
    if(!
    mysql_query($sql,$con)){
      die(
    'Errore: ' mysql_error());
    }
    $query=mysql_query($sql) or die("Impossibile eseguire il comando: ".mysql_error());
    $result=mysql_fetch_array($query);
    $rows=mysql_num_rows($query);
    if(
    $rows>0){
    $id=$result['id'];
    $gg=$result['gg'];
    $mm=$result['mm'];
    $aa=$result['aa'];
    $oggetto=$result['oggetto'];
    $descrizione=$result['descrizione'];
    echo 
    "Comunicato stampa numero: $id

    Data: 
    $gg / $mm / $aa 

    [b]Oggetto[/b]: 
    $oggetto

    "
    ;
    echo 
    nl2br($descrizione);
    }
    else{
    $query="ALTER TABLE com_stmp AUTO_INCREMENT =1";
    }
    mysql_close($con);
    ?> 
    peccato che non funziona

  4. #4
    Non funziona perchè scrivi la query come stringa, ma non la esegui.
    Solo una domanda, perchè resettare l'autoincrement se la tabella è vuota?
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    la tabella non è vuota... nella tabella c'è un record... quindi nn ho capito come dovrei impostarlo??

  6. #6
    Se nella tabella c'è sempre un record, non funzionerà mai in quanto tu controlli se i recordo sono maggiori di zero, quindi ti esegue sempre l'if, mai l'else. e poi nell'else hai solo impostato la query senza eseguirla.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    allora mi spiego, forse ho sbagliato anche apensarlo con l'autoincrement il campo id e dovrei invece mettere un id=id++ ogni volta che viene aggiuntoi un articolo mentre ogni volta che ne viene eliminato uno si fa un id=id-- così potrei risolvere la queswtione del fatto che se io aggiungo un articolo e poi lo voglio eliminare il numero dell'articolo ovvero l'id non si sballa

  8. #8
    Si ma l'autoincrement è fatto proprio per queste situazioni. Io non capisco perchè devi decrementare questo valore?
    Se hai una tabella così fatta:
    id,titolo,descrizione
    dova id è l'id dell'articolo, ogni volta che ne inserisci uno automaticamente gli viene associato un id più grande di una unità, e sei sicuro che non esista già, se lo fai tu manualmente, potrebbe verificarsi che ne inserisca 2 uguali, per ovvi motivi di concorrenza.
    Ora quand ne elimini uno, ovviamente quel'id non lo puoi più utilizzare a meno che non resetti l'autoincrement. Però è così che funziona.
    Io proprio non capisco perchè devi decrementarlo.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.