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

    [PHP&MySQL] Query all'interno di altre query...

    Ho un problema (come al solito...)
    Un utente compra 3 articoli da un magazzino, questi 3 articoli hanno i codici (esempio) 1, 2 e 3.

    Gli articoli hanno un campo "Venduti" che segnala il numero di volte che gli articoli sono stati venduti.

    Quando l'utente conferma l'acquisto, una query deve aggiornare il database Magazzino incrementando di 1 il campo Venduti di ogni articolo che l'utente ha acquistato.

    Ho scritto questo codice:

    codice:
    	// INCREMENTA NUMERO VENDUTO
    
    $dbvenduto = mysql_connect("$host", "$user_db", "$pass_db");
    
    $res = mysql_db_query ("$nome_db", "select*from carrello where order_id = $order_id");
    $num = mysql_num_rows ($res);
    
    if ($num ==0)
    echo "<Font Class=\"menu\"><Div Align=\"Center\">Il tuo carrello è vuoto!
    
    ";
    
    for ($i=0; $i<$num; $i++)
    {
    
    $id_articolo = mysql_result ($res, $i, "id_articolo");	
    		
    // QUI INCREMENTA CON UN ALTRA QUERY
    
    $db1 = mysql_connect("$host", "$user_db", "$pass_db");
    $sqlinterr = "update Magazzino set Venduto = Venduto +1 ";
    $sqlinterr .= " where id = '$id_articolo' ";
    
    mysql_db_query ("$nome_db", $sqlinterr);
    
    $num = mysql_affected_rows();
    if ($num>0)
    {
    // AUMENTA QUANTITA
    echo "";
    }
    else
    {
    echo "";
    }
    
    mysql_close ($db1);
    
    
    }
    
    mysql_close($dbvenduto);
    
    
    	// FINE INCREMENTA IL NUMERO VENDUTO
    Ma mi incrementa solo 1 articolo, l'ultimo inserito... Non me li incrementa tutti... come mai??

    Grassie

  2. #2

  3. #3
    Perchè hai sbagliato il metodo!
    E' inutile contare quanti sono gli articoli nel carrello.

    Modifica lo script in questo modo:

    codice:
    $dbvenduto = mysql_connect("$host", "$user_db", "$pass_db");
    
    $res = mysql_db_query ("$nome_db", "select*from carrello where order_id = $order_id");
    
    while ($row = mysql_fetch_array($res))
         {
            $id_articolo = $row['id_articolo'];	
    		
            // QUI INCREMENTA CON UN ALTRA QUERY
    
            $db1 = mysql_connect("$host", "$user_db", "$pass_db");
            $sqlinterr = "update Magazzino set Venduto = Venduto +1 where id = '$id_articolo' ";
    
            mysql_db_query ("$nome_db", $sqlinterr);
         }
    Così dovrebbe andare.
    Solo non ho capito la parte di codice dove stampi degli echo vuoti e
    non ho capito un'altra cosa: ma tu usi due database per il carrello?!!!! VVoVe:
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    Grazie, funziona
    Si, hai ragione... Uso un solo database, quindi perchè faccio 2 connessioni???

    Grazie e Ciao!

  5. #5
    Ma fai pure due chiusure del db!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    Si si.. infatti.. ho corretto tutto

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.