Visualizzazione dei risultati da 1 a 9 su 9

Discussione: select_last_inser_id

  1. #1

    select_last_inser_id

    Ciao a tutti, spero che qualcuno possa risolvere il mio problema.Sto creando un sito per un mio amico che ha un piccolo albergo.
    Per diverso tempo ho cercato in Internet un tutorial che mi dicesse come fare e finalmente su HTML.it ho trovato la soluzione:

    http://www.html.it/pag/32165/tutoria...lberghiere-i/.

    Ho quindi creato il database con le varie tabelle ed inserito tutti i dati usando la command line, tutto funziona perfettamente.Aquesto punto mi sono detto che il piu era fatto, ora mi restava solo di creare un sito e le varie interfaccia utente per gestire
    le prenotazioni dato che non e' pensabile che possa dire all'hotel di usare il prompt o phpMyAdmin per far questo.Ho pertanto iniziato con la tabella Clienti come potete vedere qui di seguito e funziona senza la riga di codice SELECT_LAST_INSERT_ID() INTO@codCliente; se inserisco quel codice ricevo il seguente messaggio di errore:
    Parse error: syntax error, unexpected 'LAST_INSERT_ID' (T_STRING) in C:\inetpub\wwwroot\formhandler.php on line 21.

    Ho provato a risolvere il problema in tutti i modi senza riuscire, sono andato su vari forums e provato i vari suggerimenti che mi sono stati dati ma senza riuscire a risolvere il problema. Dato che senza quella riga di codice il sito non funziona in quanto da quello che ho capito last_id deve essere assegnato alla variabile @codCliente e serve per inserire la prenotazione e calcolare il prezzo ed i vari supplementi aggiornando le tabelle contemporaneamente.E' un bel rompicapo ma naturalmente io non sono ancora tanto esperto da poter risolvere la cosa da me, spero pertanto in un vosstro aiuto.Ringrazio anticipatamente.

    <table width="300" border="0" align="center" cellpadding="0" cellspacing="1">
    <tr>
    <td><form name="form1" method="post" action="formhandler.php">
    <table width="100%" border="0" cellspacing="1" cellpadding="3">
    <tr>
    <td colspan="3">Insert Data Into mySQL Database </td>
    </tr>
    <tr>
    <td width="71">Nominativo</td>
    <td width="6">:</td>
    <td width="301"><input name="nominativo" type="text" id="nominativo"></td>
    </tr>
    <tr>
    <td>Indirizzo</td>
    <td>:</td>
    <td><input name="indirizzo" type="text" id="indirizzo"></td>
    </tr>
    <tr>
    <td>Telefono</td>
    <td>:</td>
    <td><input name="telefono" type="text" id="telefono"></td>
    </tr>
    <tr>
    <td colspan="3" align="center"><input type="submit" name="Submit" value="Submit"></td>
    </tr>
    </table>
    </form>
    </td>
    </tr>
    </table>

    <?php

    $host="localhost"; // Host name
    $username="root"; // Mysql username
    $password="mypassword"; // Mysql password
    $db_name="hotel"; // Database name
    $tbl_name="clienti"; // Table name

    // Connect to server and select database.
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");

    // Get values from form
    $nominativo=$_POST['nominativo'];
    $indirizzo=$_POST['indirizzo'];
    $telefono=$_POST['telefono'];

    // Insert data into mysql
    $sql="INSERT INTO $tbl_name(nominativo, indirizzo, telefono)VALUES('$nominativo', '$indirizzo', '$telefono')";
    $result=mysql_query($sql);
    SELECT LAST_INSERT_ID() INTO @codCliente;



    // if successfully insert data into database, displays message "Successful".
    if($result){
    echo "Successful";
    echo "
    ";
    echo "Back to main page";
    }

    else {
    echo "ERROR";
    }
    ?>

    <?php
    // close connection
    mysql_close();
    ?>

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Codice PHP:
    $result=mysql_query($sql);
    SELECT LAST_INSERT_ID() INTO @codCliente
    Non siamo su .net, allora questo codice non è valido.

    Usa mysqli invece di mysql, e poi http://www.php.net/manual/en/mysqli.insert-id.php.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3

    select last_insert_id() INTO @codCliente

    Salve non capisco che cosa c'entri il fatto che non siamo su net cosa vuol dire? Ho provato ad usare msqli invece di MySQL ma non fa differenza ricevo sempre lo stesso errore.Quello di cui ho bisogno e' che qualcuno esparto controlli il codice php e mi dica come posso fare ad inserire nella variabile @codCliente il last_insert_id(), questo e' essenziale al funzionamento del programma. Ho provato a contattare l'autore del programma il Sig.Gillini ma non riesco ad avere la sua email e non faccio Facebook.Grazie per l'aiuto.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    la seguente riga
    SELECT LAST_INSERT_ID() INTO @codCliente;
    non è un'istruzione valida in php.

    Come consigliato daneroux potresti usare il metodo apposito della classe mysqli http://php.net/manual/en/mysqli.insert-id.php

    equivalente della deprecata http://php.net/manual/en/function.mysql-insert-id.php

  5. #5

    LAST_INSERT_ID

    Salve, grazie per il vostro aiuto ma ancora il problema non e' risolto, ho usato msqli
    come suggerito ma ricevo sempre lo stesso errore.Ho visitato la pagina di cui mi avete dato l'url,praticamente e' il php manual ma a parte il fatto che non ci capisco molto,praticamente mi da la stessa sintassi che non funziona nel mio caso. Forse ho creato io stesso confusione dando troppa informazione.La cosa dovrebbe essere semplice(non per me che sono agli inizi), si tratta di darmi l'esatto codice php(per la versione 5.4)per selezionare last_insert_ided assegnare questo valore alla variabile@codcLIENTE.Questa linea di codice sara' poi da me inserita nel file php che processa il form.Grazie infinite.

  6. #6
    Ciao, non so se ho compreso bene il problema. Provo a darti una risposta:
    In PHP per verificare l'ultimo ID di un campo con valore AUTO_INCREMENT quando si usa la query "INSERT" si usa la seguente sintassi:

    $last_id = mysql_insert_id();

    in questo modo, il valore della variabile $last_id corrisponderà all'ultimo ID creato dall'ultima query "INSERT".

    Spero ti sia stato d'aiuto.

  7. #7

    SELECT LAST_INSERT_ID INTO @codCliente

    Salve e grazie per il vostro aiuto, ho provato la nuova riga di codice ma ricevo sempre un messaggio di errore. Penso che probabilmente il codice del tutorial che seguo per creare il sito di prenotazione hotel dato che risale a qualche anno fa non sia piu compatibile con l'attuale versione di php e pertanto non funziona.
    Se avete il tempo potreste controllare il sito in questione:
    http://www.html.it/pag/32165/tutoria...alberghiere-i/

    Nella prima parte si crea il DB e le carie tabelle,poi si inseriscono I dati.Nella seconda parte si eseguono I vari queries per in serire le prenotazioni. Il tutto funziona perfettamente se si esegue il codice dalla command line o phpMyAdmin.Dato che io devo consegnare una webpage al cliente devo trovare il modo di eseguire con php le queries direttamente dal website. Ecco perche' ho iniziato a creare un form per inserire I dati del Cliente ma non funziona senza quella variabile @codCliente.Forse voi conoscete il modo di farlo diversamente.Grazie per l'aiuto.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    Come detto devi salvare il valore in una variabile come segue:

    <?php
    $sql="INSERT INTO $tbl_name(nominativo, indirizzo, telefono)VALUES('$nominativo', '$indirizzo', '$telefono')";
    $result=mysql_query($sql);
    $codiceCliente = mysql_insert_id();


    // if successfully insert data into database, displays message "Successful".
    if($result){
    echo "Successful";
    echo "
    ";
    echo "Back to main page";
    }

    else {
    echo "ERROR";
    }
    ?>

    il punto è che tu non fai nessun utilizzo del codice cliente nelle istruzioni successive.
    In ogni caso se ricevi degli errori dovresti indicarceli se vuoi un aiuto mirato.

    p.s: dovresti preoccuparti anche dell'escape per le query

  9. #9

    select last_insert_id



    Ciao FUNZIONA PERFETTAMENTE!!!! Grazie tante per l'aiuto finalmente ho risolto il problema che mi assillava da 15 giorni circa.Grazie.Ora vedro' come fare per il resto, non ho capito la faccenda dell'escape per le query ma seguitero' a studiare. Vorrei sapere una cosa, e' giusto che crei dei forms per effettuare le mie queries dalla pagina web o c'e' un altro modo piu semplice. Ad ogni modo ho provato a inserire come da tutorial tutte le queries dal command line eccetto per I dati cliente che ho inserito dal form.Ha funzionato,il last id salvato nella variabile ha calcolato il prezzo ed I supplementi che ho visualizzato in phpMyAdmin. Pensa che ho interpellator in italiano e inglese quasi tutti I forums di php e nessuno ha saputo risolvere il problema, grazie.
    MIGLIORE RISPOSTA

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.