[PHP] Inserire array nel db

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Salve, ho visto il carrello pubblicato sul sito a questa pagina a questo indirizzo,
https://www.mrw.it/php/carrello-spesa-php-mysql_7185.html
ho fatto semplici modifiche alla pagina index e qualcos'altro, ed ora mi ritrovo a dover inserire i dati del carrello nel db ma non so come fare.
Di solito faccio così:
all'inizio nella pagina dove seleziono i dati richiamo la 'pagina di inserimento, tipo insert.php
nella quale tramite $_POST raccolgo i dati dalla pagina precedente
PHP:
 ($prodotto= $_POST['prodotto'];)
[PHP] ($quantita= $_POST['quantita'];)
[PHP] ($prezzo= $_POST['prezzo'];)
e successivamente
PHP:
$query = "INSERT INTO tblordini (prodotto,quantita,prezzo)
                    VALUES ('$prodotto','$quantita','$prezzo')";
// invio la query
   $result = mysql_query($query);

   // controllo l'esito
   if (!$result) {
                die("<span style=\"color:red: font-size: 20pt\"Errore nell'inserimento. Riprova...</span>" . mysql_error());
   }
   echo "<br><br /><i><span style=\"color: green; font-size: 20pt\">Inserimento eseguito correttamente. </span>";
e tramite il pulsante salva inserisco i dati nel db.
Con un array non so come fare neanche avendo guardato gli esempi in rete ci sono riuscito.
Qualcuno sa darmi una mano?
Grazie
Max61
 
Potresti salvare in json, avendo mysql 5.7 puoi gestirlo per l'estrazione in modo efficace.
Se invece vuoi la classica tabellina, cicla sulla _POST['qualcosa'] e crea il modello per l'inserimento!
 
Buongiorno e grazie, ho provato a far qualcosa ma non son riuscito a far niente, ho cercato JSON in rete e ho fatto questo
PHP:
<?php
$carrello = "";
$carrello = $_SESSION['carrello'];
if(@isset($_GET['action']))
{
  $action = $_GET['action'];
 
  switch ($action)
  {
    case 'aggiungi':
    if ($carrello)
    {
      $carrello .= ','.$_GET['id'];
    }else{
      $carrello = $_GET['id'];
    }
    break;

    case 'cancella':
    if ($carrello)
    {
      $prodotti = @explode(',',$carrello);
      $acquisto = '';
      foreach ($prodotti as $prodotto)
      {
        if ($_GET['id'] != $prodotto)
        {
          if ($acquisto != '')
          {
            $acquisto .= ','.$prodotto;
          }else{
            $acquisto = $prodotto;
          }
        }
      }
      $carrello = $acquisto;
    }
    break;
    
    echo "<br><br>";
    case 'aggiorna':
    if ($carrello)
    {
      $acquisto = '';
      foreach ($_POST as $key=>$value)
      {
        if (@stristr($key,'quantita'))
        {
          $id = @str_replace('quantita','',$key);
          $prodotti = ($acquisto != '') ?
          @explode(',',$acquisto) : @explode(',',$carrello);
          $acquisto = '';

          foreach ($prodotti as $prodotto)
          {
            if ($id != $prodotto)
            {
              if ($acquisto != '')
              {
                $acquisto .= ','.$prodotto;
              }else{
                $acquisto = $prodotto;
              }
            }
          }
 
          for ($i=1;$i<=$value;$i++)
          {
            if ($acquisto != '')
            {
              $acquisto .= ','.$id;
            }else{
              $acquisto = $id;
            }
          }
        }
      }
    }
    $carrello = $acquisto;
    echo $carrello;

    //NUOVO CON JSON   
// array per la codifica
$acquisto = array($prodotto, $quantita, $prezzo);
// codifica JSON
$stringa = json_encode($acquisto);
// stampa del risultato
echo $stringa;
    //FINE NUOVO CON JSON
    
    break;
  }
}

$_SESSION['carrello'] = $carrello;
?>

<html>

<body>

<?php
echo usaCarrello();
?>
ma ovviamente non funziona, questo è il risultato di JSON
["17",null,null]
Notice: Undefined variable: quantita in C:\xampp\htdocs\Tropical\views\carrello.php on line 130

Notice: Undefined variable: prezzo in C:\xampp\htdocs\Tropical\views\carrello.php on line 130

e 17 è l'id del prodotto.
Scusa ma non saprei da che parte incominciare.
Grazie ancora
Ciao
Max61
 
Scusami, ho inserito ilo codice che mi hai postato nella pagina carrello.php (è quella che ho postato) tra //NUOVO CON JSON e //FINE NUOVO CON JSON, ma da questi errori
Notice: Undefined index: quantita in C:\xampp\htdocs\Tropical\views\carrello.php on line 131
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\Tropical\views\carrello.php on line 131

forse lo devo mettere altrove?
Max61
 
La variabile $_POST cosa contiene????
PHP:
$_POST['quantita'] e $_POST['prodotti']

se è così deve funzionare, devi specificare cosa e come viene passato in POST altrimenti diventa impossibile fare copia/incolla!

Posta il codice completo e documentalo!
 
Mi da questi errori
Notice: Undefined index: prodotti in C:\xampp\htdocs\Tropical\views\carrello.php on line 145
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\Tropical\views\carrello.php on line 145
quantita
Notice: Undefined index: quantita in C:\xampp\htdocs\Tropical\views\carrello.php on line 152
prodotti
Notice: Undefined index: prodotti in C:\xampp\htdocs\Tropical\views\carrello.php on line 153


Niente, lascia perdere tanto non mi riesce, sono troppo indietro nella programmazione.
Grazie lo stesso
Buona giornata
Max61
 

Discussioni simili