Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1

    2 query consecutive 1 deve prendere l'id dell'altra

    ciao, ho un problema: ho 2 query che mi devono inserire dei valori in 2 tabelle diverse. un valore è in comune. incollo il codice ke è forse + kiaro:
    Codice PHP:
    ...
    $query_organizzazione "INSERT INTO meeting_proponi (proponente, data, luogo, note) VALUES ('$proponente', '$data_giorno', '$data', '$luogo', '$note')";
    $query_iscrizione "INSERT INTO meeting_partecipazione (username, risposta, idmeeting, data) VALUES ('$proponente', 'si', '$idmeeting', '$data')";
    ... 
    il campo idmeeting è la chiave nella tabella meeting_proponi e mi deve passare il valore nell'altra, meeting_partecipazione. come faccio? :master:

  2. #2
    Devi estrarre l'id ultimo inserito, se e' un auto increment:

    Query 1 select.....

    $idmeeting = mysql_insert_id(); // (id connessione)

    Query 2 select.....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ho provato ma non va...ti pasto il codice così vedi se è giusto...
    Codice PHP:
    ..
    $proponente addslashes(stripslashes($proponente));
    $note str_replace("<""&lt;"$note);
    $note str_replace(">""&gt;"$note);
    $note nl2br($note);
    $data mktime("d.m.Y");
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri");
    $query_organizzazione "INSERT INTO meeting_proponi (proponente, data_giorno, data_mese, data_anno, data_ore, data_minuti, luogo, canale, citta, note) VALUES ('$proponente', '$data_giorno', '$data_mese', '$data_anno', '$data_ore', '$data_minuti', '$luogo', '$canale', '$citta', '$note')";
    $idmeeting mysql_insert_id();
    $query_iscrizione "INSERT INTO meeting_partecipazione (username, risposta, data, idmeeting) VALUES ('$proponente', 'si', '$data' , '$idmeeting')";
    if (
    mysql_query($query_organizzazione$db))
    if (
    mysql_query($query_iscrizione$db))
    .... 

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Devi eseguire la prima query prima di assegnare l'id.

  5. #5
    Si , come ha detto badaze...
    Pero' farei cosi':
    codice:
    $query_organizzazione = "INSERT INTO meeting_proponi ....
    $pippo = mysql_query($query_organizzazione, $db)OR die(mysql_error());
    $idmeeting = mysql_insert_id();
    $query_iscrizione = "INSERT INTO meeting_partecipazione (username, risposta, data, idmeeting) VALUES ('$proponente', 'si', '$data' , '$idmeeting')";
    $pippo1 = mysql_query($query_iscrizione, $db) OR die(mysql_error());
    
    if (!$pippo OR !$pippo1) { echo "e' andata male..."; }
    In questi casi di doppia query insert, se la prima va male si abortisce tutto con OR DIE. Se la prima va bene ma la seconda va male, bisognerebbe prevedere di cancellare la prima immissione e notificare il fallimento. Altrimenti il db potrebbe diventare inconsistente.

    Ciao.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    piero.mac ho fatto come mi hai detto,ho cambiato solo il nome pippo e...non riesco a farlo andare, anzi, ora mi viene pagina bianca,vuota, senza nulla!
    Codice PHP:
    if (trim($data_giorno) == "" OR trim($data_mese) == "" OR trim($data_anno) == "" OR trim($data_ore) == "" OR trim($data_minuti) == "" OR trim($luogo) == ""):
    echo 
    "<tr><td><div class=\"boldrosso\">Attenzione!</div>
    Tutte le voci del modulo vanno compilate!<img src=\"img/errore.gif\" alt=\"errore!\" align=\"right\" border=\"0\"></td></tr>
    <tr>
                <td width=\"100%\"><img src=\"img/pixel_trasparente.gif\" width=\"1\" height=\"30\"></td>
                </tr>
    <tr><td><a href=\"javascript:history.back()\"><img alt=\"torna indietro\" src=\"img/indietro.gif\" border=\"0\"></a></td></tr>"
    ;
    else:
    $proponente addslashes(stripslashes($proponente));
    $note str_replace("<""&lt;"$note);
    $note str_replace(">""&gt;"$note);
    $note nl2br($note);
    $data mktime("d.m.Y");
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri");
    $query_organizzazione "INSERT INTO meeting_proponi (proponente, data_giorno, data_mese, data_anno, data_ore, data_minuti, luogo, canale, citta, note) VALUES ('$proponente', '$data_giorno', '$data_mese', '$data_anno', '$data_ore', '$data_minuti', '$luogo', '$canale', '$citta', '$note')";
    $organizza = (mysql_query($query_organizzazione$db)) OR die(mysql_error());
    $idmeeting mysql_insert_id();
    $query_iscrizione "INSERT INTO meeting_partecipazione (username, risposta, data) VALUES ('$proponente', 'si', '$data')";
    $iscriviti = (mysql_query($query_iscrizione$db)) die(mysql_error());
    if (!
    $organizza OR !$iscriviti) { echo "ERRORE"; }
    else
    {
    echo 
    "<tr><td>Operazione riuscita correttamente, la proposta di nuovo meeting è stata innoltrata sul sito. Di seguito trovi i dettagli della tua proposta: 
      </td></tr>
    <tr><td><img src=\"img/pixel_trasparente.gif\" width=\"1\" height=\"30\"></td></tr>
    <tr><td>Le informazioni da te inserite per organizzare il meeting sono:</td></tr>
    <tr><td><img src=\"img/freccia_grigia.gif\" alt=\"\"> canale: [b]
    $canale[/b]</td></tr>
    <tr><td><img src=\"img/freccia_grigia.gif\" alt=\"\"> data e ora dell'incontro: [b]
    $data_giorno $data_mese $data_anno alle ore $data_ore:$data_minuti[/b]</td></tr>
    <tr><td><img src=\"img/freccia_grigia.gif\" alt=\"\"> luogo dell'incontro: [b]
    $citta$luogo[/b]</td></tr>
    <tr><td><img src=\"img/freccia_grigia.gif\" alt=\"\"> note: [b]
    $note[/b]</td></tr>
    <tr><td><img src=\"img/freccia_grigia.gif\" alt=\"\"> avviso in home page: [b]inserito[/b]</td></tr>
    <tr><td><img src=\"img/pixel_trasparente.gif\" width=\"1\" height=\"15\">
      </td></tr><tr><td>Ti informiamo che, inoltre, sei stato automaticamente iscritto come partecipante al meeting da te proposto. Per cambiare la tua scelta, per qualsiasi motivo, accedi dal menù di destra alla voce [b]meeting[/b] e quindi [b]modifica iscrizione al meeting[/b].
      </td></tr>"
    ;


  7. #7
    Forse lo script cessa per un errore e tu non hai abilitato la stampa degli errori????

    File php.ini verifica di avere:

    error_reporting = E_ALL

    display_errors = On

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    ma hai tolto $idmeeting dalla seconda query????

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Originariamente inviato da piero.mac
    ma hai tolto $idmeeting dalla seconda query????
    ehm..si... non dovevo..mi sa.. :master:
    il report degli errori non lo vedo...

  10. #10
    Originariamente inviato da fabioandr@libero.it
    ehm..si... non dovevo..mi sa.. :master:
    il report degli errori non lo vedo...
    se lo togli no ti da errore, semplicemente non lo mette. E' la pagina bianca piuttosto. Nel file php.ini cerca (find) le stringhe che ti ho messo prima.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.