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

    salvare il carrello nel db

    Ciao,

    ho un form con i vari prodotti scelti dall'utente:


    Codice PHP:
    <?php        
    foreach ($_SESSION["shopping_cart"] as $product){
    ?>

              <input name="name" type="hidden" value="<?php echo $product["name"]; ?>" />
              <input type="hidden" name="quantity" value="<?php echo $product["quantity"]; ?>" />
              <input type="hidden" name="price" value="<?php echo $product["price"]; ?>" /></td>

    <?php
          
    }
    ?>
    per inserirli a DB ho usato:


    Codice PHP:
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
        
    foreach (
    $_POST as $product) {
        
      
    $insertSQL sprintf("INSERT INTO orders (name, quantity, price) VALUES (%s, %s, %s)",
                           
    GetSQLValueString($name $productl['name'], "text"),
                           
    GetSQLValueString($quantity $productl['quantity'], "text"),
                           
    GetSQLValueString($price $product['price'], "double"));

      
    mysql_select_db($database_Carrello$Carrello);
     
    $Result1 mysql_query($insertSQL$Carrello) or die(mysql_error()); 

    Ma mi inserisce valori senza senso.. dove sbaglio?

    Grazie in anticipo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,921
    Prima di tutto sbagli nell'usare le funzioni mysql_ che sono state abbandonate, appena userai PHP7 (e ci dovrai passare senza dubbio prima o poi) non funzionerà più niente, sarai sommerso di errori.

    Nello script che riceve i dati del form, i vari prodotti non sono raggruppati per prodotto e inoltre i campi hanno nomi uguali, se per esempio ci fossero 3 prodotti, nel form avresti 3 campi che si chiamano name, 3 che si chiamano quantity e 3 che si chiamano price.
    Ora, le chiavi di un array devono essere univoche, quindi conterrà 1 campo name, 1 campo quantity e 1 campo price.

    Nello script php scrivi così all'inizio:
    Codice PHP:
    echo '<pre>';
    print_f($_POST);
    echo 
    '</pre>';
    exit(); 
    Dovrebbe farti capire la situazione in cui ti trovi.

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