[PHP] Inserimento di più righe non funziona come mi aspetto...

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti.
Panorama:
database di ricette, diviso nelle tabelle:
- ricette (informazioni generali sulla ricetta, titolo, persone, campi statistici vari...)
- ricette_lezioni (se la ricetta viene utilizzata all'interno di una lezione di cucina inserisco il codice della lezione)
- ricette_ingredienti
- ricette_procedimenti
- ricette_foto

L'inserimento avviene attraverso diverse pagine in successione.Ogni pagina aggiorna una tabella.
Ho un problema sulle due pagine che gestiscono gli ingredienti.
La prima pagina è un form che permette di inserire le righe mano a mano che mi servono (visto che il numero di ingredienti nelle ricette non è definibile in partenza).
La pagina è la seguente (pagina1.php):
PHP:
<?php
session_start();
//se non c'è la sessione registrata
mb_internal_encoding('UTF-8');
if (!$_SESSION['autorizzato']) {
  echo "<h1>Area riservata, accesso negato.</h1>";
  echo "Per effettuare il login clicca <a href='index.php'><font color='blue'>qui</font></a>";
  die;
}
 
//Altrimenti Prelevo il codice identificatico dell'utente loggato

$cod = $_SESSION['cod']; //id cod recuperato nel file di verifica

$codicericetta = $_GET['codicericetta'];
$titolo = $_GET['titolo'];
?>
<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Inserimento ingredienti</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type='text/javascript'>
    $(document).ready(function() {
        var currentItem = 1;
        AddRow(currentItem);

        $('#addnew').click(function(){
            currentItem++;
            AddRow(currentItem);
        });

        $('#removelast').click(function(){
            if (currentItem > 1) {
                var rowID = '#row'+currentItem
                $(rowID).remove();
                currentItem--;
                $('#items').val(currentItem);
            }
        });

        function AddRow(currentItem)
        {
            var strToAdd = NewRow(currentItem)
            $('#data').append(strToAdd);
            $('#items').val(currentItem);
        };

        function NewRow(currentItem)
        {
            text
='<tr id="row'+currentItem+'">'
+'<td><input name="idricetta[]" type="text" size="5" value="<? echo $codicericetta; ?>" readonly="readonly" /></td>'
+'<td><input name="ingrediente[]" type="text" size="50" /></td>'
+'<td><input name="quantita[]" type="text" size="4" /></td>'
+'<td><select name="misura[]">'
+'<option value="===" selected="selected">scegli unit&agrave; di misura</option>'
+'<option value="Kg">Kg</option>'
+'<option value="Gr">Gr</option>'
+'<option value="Lt">lt</option>'
+'<option value="ml">ml</option>'
+'<option value="N">N.</option>'
+'<option value="Bicchiere">Bicchiere/i</option>'
+'<option value="Cucchiai grandi">Cucchiai/o grande</option>'
+'<option value="Cucchiaino">Cucchiaino/i</option>'
+'<option value="Spicchi">Spicchio/i</option>'
+'<option value="Mazzetto">Mazzetto/i</option>'
+'<option value="Filetti">Filetto/i</option>'
+'<option value="Fette">Fetta/e</option>'
+'<option value="dl">dl</option>'
+'<option value="QB">QB</option>'
+'</select>'
+'</td>'
+'</tr>';
            return text;
        };
    });
    </script>
  </head>
  <body>
    <form name='myform' method='POST' action="pagina2.php">
      <table class="dd" width="100%" id="data">
        <tbody>
        </tbody>
      </table>
      
      <input type="hidden" name="items"      id="items"      value="0" />
      <input type="hidden" name="titolo"      id="titolo"      value="<? echo $titolo; ?>" />
      <input type="button" name="addnew"     id="addnew"     value="Add new item" />
      <input type="button" name="removelast" id="removelast" value="Remove last item" />
      <input type="submit" name="submit"                     value="Submit Values" />
      
    </form>
  </body>
</html>

Questa pagina prende un paio di dati dalla precedente (codice ricetta e titolo) e invia alla successiva le righe inserite.
Ecco il codice della pagina "ricevente" (pagina2.php):
PHP:
<?php
if(!empty($_POST['submit']))
{
    // ho ricevuto i dati perchè è stato cliccato il bottone 'Submit Values' della pagina 1

    // qui devo mettere il trattamento dei dati ricevuti ricordando che,

    $items = $_POST['items'];  // numero delle righe presenti
    $titolo = $_POST['titolo'];

    echo "ho ricevuto " . $items . " righe<br /><br />";

  //  $numricetta = $_POST['numricetta'];

    include 'connect3.php';

    for($r = 0; $r < $items; $r++)
    {
        $idricetta = $_POST['idricetta'][$r];
        $ingrediente = $_POST['ingrediente'][$r];
        $quantita    = $_POST['quantita'][$r];
        $misura      = $_POST['misura'][$r];

        echo "riga : " . $r . " ricetta : " . $idricetta . " ingrediente : " . $ingrediente . " quantita : " . $quantita . " misura : " . $misura . "<br /><br />";


        $connessione->query("INSERT INTO ricette_ingredienti VALUES ('', '$idricetta','$ingrediente', '$quantita', '$misura')");
        $connessione->close();
    }
}
else
{
    echo "NON HO RICEVUTO DATI CON il bottone 'Submit Values !'";
    die();
}

echo "<html>";
echo "Numero ricetta: " . $idricetta . "<br>";
echo "Titolo: ". $titolo . "<br>";
echo "<form method='post' action='inserimentoricette2.php'>";
echo "<input name='idricetta' type='hidden' size='10' value='$idricetta' />";
echo "<input name='titoloric' type='hidden' size='10' value='$titolo' />";
echo "<input name='conferma' type='submit' id='conferma' value=' Inserire il Procedimento >> ' />";
echo "</form>";
echo "</html>";
?>

Problema:
Nella tabella ricette_ingredienti trovo solo la prima riga...

Dove sbaglio?

Grazie per i suggerimenti
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
qui scrivi la riga e chiudi la connessione
PHP:
        $connessione->query("INSERT INTO ricette_ingredienti VALUES ('', '$idricetta','$ingrediente', '$quantita', '$misura')");
        $connessione->close();
meglio spostare la chiusura della connessione all'esterno e a seguire il "for"
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
In effetti così è tutto a posto...
E pensare che ho letto e riletto il tutto 200 volte...

Grazie.
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [PHP] Form inserimento più menù a discesa PHP 9
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
L form multipla php sql,errore in inserimento MySQL 0
C [RISOLTO]Inserimento variabile php in input html PHP 20
S [PHP] email con inserimento dati nel database PHP 23
B [PHP] Creare PDF dopo inserimento dati form PHP 4
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
M [PHP] Problemi su inserimento array nel db PHP 7
E Inserimento dati da PHP in tabella MySQL PHP 5
K [PHP] Inserimento dati database con postgres PHP 2
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
A [PHP] Inserimento url dinamici in pagina html PHP 3
spider81man [PHP] Alert Box per confermare Inserimento o Cancellazione dato. PHP 4
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
S [PHP] inserimento su DB da tabella PHP 29
P [PHP] Problema inserimento nuove chiavi in array PHP 2
webimage [PHP] Non inserimento in tabella PHP 19
M Inserimento Array prelevato da Database in Php in un altra tabella mysql PHP 0
M [PHP] Controllo inserimento in tempo reale PHP 0
T [PHP] modulo inserimento in DB e apostrofi... PHP 1
M Inserimento automantico di un testo in una pagina PHP PHP 4
M [PHP] Difficoltà inserimento valori nella tabella scontrini PHP 16
B [PHP] Creare un'interfaccia di inserimento testo in varie posizioni PHP 1
giancadeejay [PHP] Controllo inserimento tot caratteri PHP 5
M [PHP] errore in semplie form inserimento dati PHP 7
M [PHP] Checkbox: inserimento nel db e lettura dal db PHP 20
S [PHP] Inserimento dati su tabelle collegate 1-m PHP 17
M [PHP] controllo inserimento dati un un form PHP 4
cris8380 [PHP] Generare file pdf con inserimento dati PHP 34
S Php e mysql, estrazione da una tabella e inserimento in un'altra tabella PHP 14
J Inserimento di un header, nav, footer php PHP 0
G Inserimento array proveniente da un modulo di registrazione con PHP e MySQL PHP 6
G Inserimento loop in una INSERT query in PHP e MySQL PHP 2
N Inserimento valori da Joomla a database MySql tramite PHP Joomla 0
M [Offro Lavoro] Realizzazione di un database per inserimento eventi in aspx o php [Retribuito] Offerte e Richieste di Lavoro e/o Collaborazione 1
lab php e html - inserimento di dati in database e aggiornamento della pagina html PHP 2
EffeElle Php problema su inserimento dati mysql PHP 47
L PHP/MYSQL + Inserimento automatico dati PHP 10
N [PHP/MySQL] Problema inserimento stringhe ' or ', ' and ' PHP 2
T inserimento di codice php in html PHP 10
R inserimento dati in form da php PHP 1
abulafia [postgres+php]interfaccia grafica per inserimento e ricerca dati PHP 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1

Discussioni simili