Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027

    sfasamento valori array

    buongiorno,

    ho un problema, ho due prodotti:

    prodotto A

    prodotto B

    se aggiungo prodotto A al carrello con una quantità di 4 per esempio, il carrello me lo stampa giusto,

    se a sua volta dopo aver aggiunto A al carrello aggiungo B con quantità di 6, il carrello mi stampa a video che sia A che B hanno quantità 6

    come mai?

    inoltre se eliimino uno dei due prodotti dal carrello l'altro presente ancora nel carrello rimane scritto però si azzerano prezzo e quantità...

    questo è il codice in cui io aggiungo un prodotto al carrello e a seguire ho postato il codice in cui io leggo il prodotto nel carrello

    Codice PHP:
    <?php
    session_start
    ();
    $nomeprodotto=$_GET['nome'];
    $prezzoprodotto=$_GET['prezzo'];
    $quantita=$_POST['quant'];
    $_SESSION['carrello'][$nomeprodotto]++;
    header("Location:carrello.php?quantita=$_POST[quant]");
    ?>
    Codice PHP:
    connessione al db.......
    $quanti=$_GET['quantita'];
    echo 
    "if($_SESSION['carrello']) {
        echo"
        
    <table cellspacing=\"10px\" style=\"text-align:center;padding:3px;width:100%;font-size:12px;font-family:Verdana\">
        <tr>
        <th style=\"align:center;background-color:#ffffff;color:#41a62a;\">Nome prodotto</th>
        <th style=\"align:center;background-color:#ffffff;color:#41a62a;\">Numero bottiglie a scatola</th>
        <th style=\"align:center;background-color:#ffffff;color:#41a62a;\">Prezzo prodotto (€)</th>
        <th style=\"align:center;background-color:#ffffff;color:#41a62a;\">Quantità</th>
        </tr>"
    ;
        foreach(
    $_SESSION['carrello'] as $nome => $prezzo) {
            
    $sql "SELECT * FROM prodotto WHERE nome = '$nome' " ;
            
    $result mysql_query($sql);
        
    $n_elementi=count($_SESSION['carrello']);
            if(
    mysql_num_rows($result) > 0) {

                list(
    $ide$name$no_bott$price) = mysql_fetch_row($result);
            
    $num_bott=$no_bott;
                
    $line_cost $num_bott $price;
            
    $line_cost $line_cost $quanti;
                
    $total $total $line_cost;

                echo 
    "<tr>";
                echo 
    "<td align=\"center\">$name</td>";
            echo 
    "<td align=\"center\">$num_bott</td>";
                echo 
    "<td align=\"center\">$line_cost</td>";
            echo 
    "<td align=\"center\">$quanti <a id=\"svuota_carrello\" href=\"canc_prod.php?nome=$nome\">Elimina</a></td>";
                echo 
    "</tr>";

            }

        }
        echo 
    "<tr>";
        echo 
    "<td colspan=\"4\" align=\"right\"><a id=\"svuota_carrello\" href=\"svuota_carrello.php\" onclick=\"return confirm('Sei sicuro di svuotare il carrello?');\">Svuota carrello</a></td>";
        echo 
    "</tr>";
        echo 
    "</table>";
        echo 
    "

    Sono presenti: 
    $n_elementi prodotti nel carrello

    [b]Totale[/b] dell'ordine: 
    $total €</p>";

    se può servire qui c'è pure il codice di quando cancello un prodotto (canc_prod.php)

    Codice PHP:
    <?php
    session_start
    ();
    $nomeprodotto=$_GET['nome'];
    $_SESSION['carrello'][$nomeprodotto]--;
    if(
    $_SESSION['carrello'][$nomeprodotto] == 0) unset($_SESSION['carrello'][$nomeprodotto]);
    header("Location:carrello.php");
    ?>
    ho postato il codice perchè tanto sicuramente me lo avreste chiesto quindi tanto vale farlo subito

    grazie degli eventuali aiuti... e della pazienza

  2. #2
    Suona male che tu sommi ad un nome...

    Codice PHP:
     <?php
    session_start
    ();
    $nomeprodotto=$_GET['nome'];
    $prezzoprodotto=$_GET['prezzo'];
    $quantita=$_POST['quant'];
    $_SESSION['carrello'][$nomeprodotto]++;
    header("Location:carrello.php?quantita=$_POST[quant]");
    ?>
    e poi fai un redirect alla quantita'.....

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

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    si perchè praticmanete il valore della quantità l'ho aggiunto oggi prima facevo semplicemente una quantità fissa per tutti, quindi tu dici che se devo incrementare devo incrementare sopra la quantità? però non capisco perchè mi incrementa la quantità di entrambi e non solo di uno, cioè non so se mi sono spiegato molto bene nel post...

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    ho cercato d arrivarci a ragionamento ma non riesco proprio ad uscirne fuori con la soluzione,
    qualcuno mi può aiutare a ragionarci?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    bellissimo a quanto pare sono riuscito ad arrivarci da solo

    al prossimo post spero che arrivi più tardi possibile... ciaoo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.