Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Grith
    Registrato dal
    Jul 2008
    Messaggi
    10

    registrazione dati nel database

    salve, questa pagina php che vi posterò contiene i dati necessari per l'inserimento in un database:

    il problema che riscontro è che nella memorizzazione nel db, mi viene salvato solo l'ultimo record relativo al vettore $carrello e $oggetti (hanno la stessa lunghezza, ovvero in $carrello viene memorizzata il codiceprodotto e in $oggetti la quantità richiesta del prodotto)..

    N.B.: il punto incriminato è il ciclo for evidenziato in rosso

    Codice PHP:
    <?php
     
    include("creds.php"); 

     
    $db mysql_connect($db_host$db_user$db_password);
     if (
    $db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); 
    mysql_select_db($db_name$db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
     
    $carrello=$_SESSION['carrello']; 
    $numero=count($carrello); 

    $oggetti=$_SESSION['quantita']; 

    $somma=0;
     
    [
    COLOR=red]
    $i=0
    for (
    $i$i<$numero$i++) { 

    $query1="SELECT Modello FROM prodotto WHERE CodProdotto='$carrello[$i]'"
    $result mysql_query($query1); 
    $arr mysql_fetch_row($result); 
    $result1 $arr[0];  

    $query2="SELECT Colore FROM prodotto WHERE CodProdotto='$carrello[$i]'"$result2 mysql_query($query2);
    $arr2 mysql_fetch_row($result2); 
    $result3 $arr2[0];  

    $query3="SELECT Taglia FROM prodotto WHERE CodProdotto='$carrello[$i]'"
    $result4 mysql_query($query3); 
    $arr3 mysql_fetch_row($result4); 
    $result5 $arr3[0];  

    $query4="SELECT Prezzo FROM prodotto WHERE CodProdotto='$carrello[$i]'"$result6 mysql_query($query4); 
    $arr4 mysql_fetch_row($result6); 
    $result7 $arr4[0]; 

    $prezzotot=$result7*$oggetti[$i]; 

    $somma=$prezzotot+$somma;  

    $username $_SESSION['username'];  

    $sql "INSERT INTO ordine (CodProdotto, PrezzoTot, Quantita, UserID) VALUES ('$carrello[$i]', '$prezzotot', '$oggetti[$i]', '$username');";
     } [/
    COLOR

    if (
    mysql_query($sql$db))     
    echo 
    "La registrazione è avvenuta con successo.";
     else 
     echo 
    "Errore durante l'inserimento"
     
    mysql_close($db);  
    ?>

  2. #2
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155

    Re: registrazione dati nel database

    Potresti anzitutto rendere piu' snello il codice facendo una sola SELECT (supponendo che ti servano tutti i campi selezionati) MA SOPRATTUTTO spostando dentro il ciclo FOR il test sul buon esito della INSERT (in modo da controllare se per caso esiste un qualche errore a fronte di altri eventuali inserimenti):

    Codice PHP:
    for ($i=0$i<$numero$i++) { 

        
    $query="SELECT Modello, Colore, Taglia, Prezzo " .
               
    "  FROM prodotto                        " .
               
    " WHERE CodProdotto = '$carrello[$i]'   "
        
    $result   mysql_query($query); 
        
    $arr      mysql_fetch_row($result); 
        
    $Modello  $arr['Modello'];  
        
    $Colore   $arr['Colore'];  
        
    $Taglia   $arr['Taglia'];  
        
    $Prezzo   $arr['Prezzo'];  

        
    $prezzotot $Prezzo $oggetti[$i]; 

        
    $somma    += $prezzotot;  

        
    $username $_SESSION['username'];  

        
    $sql "INSERT INTO ordine (CodProdotto, PrezzoTot, Quantita, UserID) VALUES ('$carrello[$i]', '$prezzotot', '$oggetti[$i]', '$username');";

        if (
    mysql_query($sql$db))     
            echo 
    "La registrazione è avvenuta con successo.";
        else 
            echo 
    "Errore durante l'inserimento"

     
    mysql_close($db);  
    ?> 

  3. #3
    Utente di HTML.it L'avatar di Grith
    Registrato dal
    Jul 2008
    Messaggi
    10

    Re: Re: registrazione dati nel database

    Originariamente inviato da wdb
    Potresti anzitutto rendere piu' snello il codice facendo una sola SELECT (supponendo che ti servano tutti i campi selezionati) MA SOPRATTUTTO spostando dentro il ciclo FOR il test sul buon esito della INSERT (in modo da controllare se per caso esiste un qualche errore a fronte di altri eventuali inserimenti):
    perfetto..era quello il problema..grazie mille..
    una domanda solo: ora, mi stampa sullo schermo un messaggio di successo delle operazioni per ogni registrazione nel database

    ad esempio: se ci sono due salvataggi sul database mi appare per due volte
    "La registrazione è avvenuta con successo"

    come posso evitare il ripetersi del messaggio? grazie.

  4. #4
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Codice PHP:
    $sw_ins 0;

    for (
    $i=0$i<$numero$i++) { 

        
    $query="SELECT Modello, Colore, Taglia, Prezzo " 
               
    "  FROM prodotto                        " 
               
    " WHERE CodProdotto = '$carrello[$i]'   "
        
    $result   mysql_query($query); 
        
    $arr      mysql_fetch_row($result); 
        
    $Modello  $arr['Modello'];   
        
    $Colore   $arr['Colore'];   
        
    $Taglia   $arr['Taglia'];   
        
    $Prezzo   $arr['Prezzo'];   

        
    $prezzotot $Prezzo $oggetti[$i]; 

        
    $somma    += $prezzotot;   

        
    $username $_SESSION['username'];   

        
    $sql "INSERT INTO ordine (CodProdotto, PrezzoTot, Quantita, UserID) VALUES ('$carrello[$i]', '$prezzotot', '$oggetti[$i]', '$username');"

        if (
    mysql_query($sql$db))     
            
    sw_ins 1;
        else 
            echo 
    "Errore durante l'inserimento"

    if (
    sw_ins == 1) {
        echo 
    "La registrazione è avvenuta con successo."
    }
    mysql_close($db);   
    ?> 

  5. #5
    Utente di HTML.it L'avatar di Grith
    Registrato dal
    Jul 2008
    Messaggi
    10
    Grazie..problema risolto..


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.