Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    fare in modo che i campi ID si incrementino di 2 in 2

    ciao a tutti, per questioni tecniche che non sto qui a spiegarvi, avrei bisogno che nell'inserire le query, il campo ID che è auto-increment, sia sempre pari quindi deve essere incrementato di 2 in 2
    pensate sia fattibile automaticamente impostando direttamente dalla struttura del database?
    oppure altre soluzioni? grazie!

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    allora, potresti, dopo aver eseguito la query di inserimento, recuperare l'id e incrementarlo di +1.
    http://php.net/manual/en/function.mysql-insert-id.php
    esempio
    Codice PHP:
    <?php
    $link 
    mysql_connect('localhost''mysql_user''mysql_password');
    if (!
    $link) {
        die(
    'Could not connect: ' mysql_error());
    }
    mysql_select_db('mydb');

    mysql_query("INSERT INTO mytable (product) values ('kossu')");
    $id mysql_insert_id();
    if(
    $id == 1){
    $new_id mysql_insert_id() + 1;
    mysql_query("UPDATE mytable SET id = $new_id WHERE id = $id");
    }
    ?>
    eXvision

  3. #3
    siccome l'id è incasinato anche con altre tabelle, potrei fare in modo da recuperare l'ultimo id del record presente e incrementarlo di +2 per impostare l'id della query che verrà eseguita?
    eventalmente cose si fa? grazie!

  4. #4
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    beh allora innanzitutto togli l'auto increment,
    poi quando esegui l'inserimento, nella query imposti anche il valore dell'id

    Codice PHP:
    <?php
    $link 
    mysql_connect('localhost''mysql_user''mysql_password');
    if (!
    $link) {
        die(
    'Could not connect: ' mysql_error());
    }
    mysql_select_db('mydb');

    mysql_query("INSERT INTO mytable (id, product) VALUES ( (SELECT MAX(id)+2 FROM mytable),  'kossu')");

    ?>
    eXvision

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Lasci inserire il record incrementato di 1 e poi

    fai una select max(nomedelcampo) from tabella

    recuperi il valore + alto della tabella in quel campo dell'ultimo record appena inserito.

    poi la variabile la incrementi con +1.

    $sql ="select max(ID) from tabella" ;

    $eseguisql = mysql_query($sql) ;

    $nuovovaloredainserire = $eseguisql +2 ;

    e poi update



    a grandi linee

  6. #6
    brodik, e nel tuo caso posso utilizzare poi il mysql_insert_id()?

  7. #7
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    mysql_insert_id() ti restituisce il valore del campo auto_increment della query inserita precedentemente, quindi nel caso della seconda soluzione che ti ho proposto, no
    eXvision

  8. #8
    e come potrei fare per avere il valore ID già incrementato?

  9. #9
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765


    ti sono state postate tre possibili soluzioni... cos'hanno che non vanno?
    eXvision

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.