Da form sotto forma di tabella html a mysql

stefanone69

Nuovo Utente
11 Giu 2013
9
0
0
Salve,
mi presento visto che è la prima volta che scrivo su questo Forum.
Sono un ragazzino di 43 anni cresciuto con la passione per i computer che mastica dall'hardware alla programmazione ma non sono un genio in nessuna materia specifica.
Quando ho la necessità di programmare, visto che provengo dal basic del VIC20, utilizzo VB.net ed attualmente sto modificando un'applicazione che ho realizzato tempo fa per la "Sagra della Polenta" del mio paese.
Proggetto ghiotto eh?
Veniamo al dunque: l'applicazione da me realizzata in VB.net, che utilizziamo con successo da diversi anni, permette di effettuare un ordine al PC della cassa che stampa l'ordine per il cliente e le comande per la cucina ed il bar.
La mia idea per la prossima edizione della sagra è quella di permettere a chiunque sia in possesso di uno smartphone, tablet o altro dispositivo di accedere alla rete WIFI della sala e tramite browser effettuare un ordine per poi presentarsi alla cassa con l'id dell'ordine e dopo aver pagato ricevere la stampa immediata dell'ordine.
Ovviamente per la parte dell'applicazione VB non ho avuto problemi: spostato il DB da file di ACCESS a MYSQL e creato un loop che verifica ogni 5 secondi se c'è un nuovo record nel DB.
Ora devo realizzare la parte in PHP e quindi imparare un nuovo linguaggio ma l'età non mi è di supporto.... fatico!
Questo è quello che ho fatto sinora:
il file index:
PHP:
<HTML>
<HEAD>
<TITLE>Ordine</TITLE>
</HEAD>
<BODY>
INSERIRE TAVOLO 0 PER ASPORTO <br />
<FORM ID="ORDINE" NAME="ORDINE" METHOD="POST"
ACTION="raccoglieord.php">
<LABEL>Sig:
<INPUT TYPE="TEXT" NAME="Sig" ID="Sig" />
</LABEL>
<P><LABEL>Tavolo:
<INPUT TYPE="TEXT" NAME="Tavolo" ID="Tavolo" />
</LABEL></P>
<P><LABEL>Note:
<INPUT TYPE="TEXT" NAME="Note" ID="Note" />
</LABEL></P>
<P>
<INPUT TYPE="SUBMIT" NAME="Submit" ID="Submit" VLUE="Invia" />
</P>
</FORM>
</BODY>
</HTML>

il file raccoglieord.php:
PHP:
<?php include ("conn.php");?>
<?php
$Sig=$_POST ['Sig'];
$Tavolo=$_POST ['Tavolo'];
$Note=$_POST ['Note'];
$Ore=time();
$Ore=date('Y-m-d H:i:s', $Ore);
$query="INSERT INTO Ordini (Sig, Tavolo, Note, Ore)";
$query.="VALUES ('".$Sig."','".$Tavolo."','".$Note."','".$Ore."')";
mysql_query ($query,$conn);
$id = mysql_insert_id();
echo $id;
$query=mysql_query("SELECT Descrizione,Prezzo FROM menu WHERE Attivo=1 ORDER BY Settore"); 
 echo "<table><td>Descrizione</td><td>Prezzo</td><td>Quantità</td><td>Note</td>"; 
while($riga=mysql_fetch_array($query))
{   
echo "<tr><td>".$riga['Descrizione']."</td><td>".$riga['Prezzo']."</td>";
echo "<td><INPUT TYPE='TEXT' NAME='Quanti' ID='Quanti' /></td>";
echo "<td><INPUT TYPE='TEXT' NAME='Note' ID='Note' /></td></tr>";
}
echo "</table>";
?>
<?php include ("close.php");?>

Funziona tutto bene ma non so come proseguire.
Ora l'utente dovrebbe inserire quantità ed eventuali note per ogni articolo a cui è interessato ed al termine premere un pulsante di conferma.
Quindi il codice dovrebbe creare una query ad ogni valore diverso da null di 'Quanti' che inserisce un record nella tabella righe_ordine con l'id dell'ordine, Descrizione, Quanti, Note.

Forse chiedo troppo alla vostra pazienza?

Se qualcuno ha voglia e tempo di rispondere gle ne sarò grato.

Grazie comunque a tutti per avermi letto.:byebye:
 
Ultima modifica:

Emix

Utente Attivo
15 Feb 2010
596
0
16
heheh diciamo che stiamo facendo la stessa cosa... io invece che sul cibo sugli articoli... diciamo che ti sei messo in un bel casotto... Perche ora praticamente devi creare un ciclo che ogni qualvolta scelgono qualcosa, devi creare una linea nuova gemella... Alla fine farai la pagina che tramite ciclo, ti recupera tutti i dati...
 

stefanone69

Nuovo Utente
11 Giu 2013
9
0
0
si ma come?

si ma come faccio con un ciclo a rileggere riga per riga verificando l'inserimento dell'utente?
sono scarso anche di html...
 
Ultima modifica:

Emix

Utente Attivo
15 Feb 2010
596
0
16
allora ti spiego.. il ciclo per prendere i relativi campi è facile...
innanzitutto i vari text in html falli cosi :

HTML:
<HTML>
<HEAD>
<TITLE>Ordine</TITLE>
</HEAD>
<BODY>
INSERIRE TAVOLO 0 PER ASPORTO <br />
<FORM ID="ORDINE" NAME="ORDINE" METHOD="POST"
ACTION="raccoglieord.php">
<LABEL>Sig:
<INPUT TYPE="TEXT" NAME="Sig" ID="Sig" />
</LABEL>
<P><LABEL>Tavolo:
<INPUT TYPE="TEXT" NAME="Tavolo" ID="Tavolo" />
</LABEL></P>
<P><LABEL>Note:
<INPUT TYPE="TEXT" NAME="Note[]" ID="Note" />
</LABEL></P>
<P>
<INPUT TYPE="SUBMIT" NAME="Submit" ID="Submit" VLUE="Invia" />
</P>
</FORM>
</BODY>
</HTML>

Quel <INPUT TYPE="TEXT" NAME="Note[]" ID="Note" /> significa che note è un array.

A questo punto una volta che tu sai quali sono i campi array (aggiungi le varie [] ai campi in cui ti serve un inserimento multiplo)

nella pagina seguente in php fai cosi :

PHP:
<?php
$note=$_POST['note']
$tavoli=$_POST['tavoli']
$conta=count($note);
for ($i=0;$i<$conta;$i++){   
echo "<tr><td>".$riga['Descrizione']."</td><td>".$riga['Prezzo']."</td>";
echo "<td><INPUT TYPE='TEXT' NAME='Quanti' ID='Quanti' /></td>";
echo "<td><INPUT TYPE='TEXT' NAME='Note' ID='Note' /></td></tr>";
// o cmq tutte le istruzioni finche è vera quella condizione
}
?>
 

stefanone69

Nuovo Utente
11 Giu 2013
9
0
0
passi da gigante

Prima di tutto grazie mille Emix, mi sei stato di grande aiuto anche se ho dovuto studiare molto per carpire qualche cosa di utile dal tuo post.
Ho utilizzato un array nell'input per poterlo ripescare con il post ma qualche cosa non và... mi ritorna:

Notice: Undefined index: Quanti[0] in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\ordine\righeord.php on line 10
Notice: Undefined index: Note[0] in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\ordine\righeord.php on line 11
Notice: Undefined index: Quanti[1] in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\ordine\righeord.php on line 10
Notice: Undefined index: Note[1] in C:\Program Files\EasyPHP-DevServer-13.1VC9\data\localweb\ordine\righeord.php on line 11
ecc. ecc.

Questo è tutto il mio lavoro:
index.php:
PHP:
<HTML>
<HEAD>
<TITLE>Ordine</TITLE>
</HEAD>
<BODY>
INSERIRE TAVOLO 0 PER ASPORTO <br />
<FORM ID="ORDINE" NAME="ORDINE" METHOD="POST"
ACTION="raccoglieord.php">
<LABEL>Sig:
<INPUT TYPE="TEXT" NAME="Sig" ID="Sig" />
</LABEL>
<P><LABEL>Tavolo:
<INPUT TYPE="TEXT" NAME="Tavolo" ID="Tavolo" />
</LABEL></P>
<P><LABEL>Note:
<INPUT TYPE="TEXT" NAME="Note" ID="Note" />
</LABEL></P>
<P>
<INPUT TYPE="SUBMIT" NAME="Submit" ID="Submit" VLUE="Invia" />
</P>
</FORM>
</BODY>
</HTML>

raccogliord.php:
PHP:
<?php include ("conn.php");?>
<?php
$Sig=$_POST ['Sig'];
$Tavolo=$_POST ['Tavolo'];
$Note=$_POST ['Note'];
$Ore=time();
$Ore=date('Y-m-d H:i:s', $Ore);
$query="INSERT INTO Ordini (Sig, Tavolo, Note, Ore)";
$query.="VALUES ('".$Sig."','".$Tavolo."','".$Note."','".$Ore."')";
mysql_query ($query,$conn);
$id = mysql_insert_id();
echo $id;
$query=mysql_query("SELECT Descrizione,Prezzo FROM menu WHERE Attivo=1 ORDER BY Settore"); 
 echo "<table><td>Descrizione</td><td>Prezzo</td><td>Quantità</td><td>Note</td>"; 
 echo "<FORM ID='RIORDINE' NAME='RIORDINE' METHOD='POST' ACTION='righeord.php'>";
 echo "<input type='TEXT' name='id' value='".$id."'>";
 $i=0;
while($riga=mysql_fetch_array($query))
{   
 echo "<tr><td>".$riga['Descrizione']."</td><td>".$riga['Prezzo']."</td>";
echo "<td><INPUT TYPE='TEXT' NAME='Quanti[".$i."]' ID='Quanti' /></td>";
echo "<td><INPUT TYPE='TEXT' NAME='Note[".$i."]' ID='Note' /></td></tr>";
$i ++;
}
echo "</table>";
?>
<P>
<INPUT TYPE="SUBMIT" NAME="Submit" ID="Submit" VLUE="Invia" />
</P>
</FORM>

righeord.php:
PHP:
<?php include ("conn.php");?>
<?php 
$id=$_POST ['id'];
$query1 = "SELECT * FROM menu WHERE Attivo=1";     
$result = mysql_query($query1) or die (mysql_error());     
$conta = mysql_num_rows($result); 
$query2=mysql_query("SELECT * FROM menu WHERE Attivo=1 ORDER BY Settore");
for ($i=0;$i<$conta;$i++){    
$riga=mysql_fetch_array($query2);
$Quanti=$_POST ["Quanti[".$i."]"];
$Note=$_POST ["Note[".$i."]"];
$Articolo = $riga['ID'];
$Prezzo = $riga['Prezzo'];
if ($Quanti != 0){
  $query="INSERT INTO righe_ordini (Articolo, Note, Quanti, Prezzo, Ordine)";
$query.="VALUES ('".$Articolo."','".$Note."','".$Quanti."','".$Prezzo."','".$id."')";
mysql_query ($query,$conn);
}
} 
?>
<?php include ("close.php");?>

Che sbaglio?
 

stefanone69

Nuovo Utente
11 Giu 2013
9
0
0
Funziona!!!!

Sono molto soddisfatto, funziona e ci sono riuscito da solo.
Grazie Emix per lo spunto.
Ora mi resta la parte più facile ma noisa: "l'estetica".
Posto i tre files per i novellini come me.

Index.php
HTML:
<HTML>
<HEAD>
<TITLE>Ordine</TITLE>
</HEAD>
<BODY>
INSERIRE TAVOLO 0 PER ASPORTO <br />
<FORM ID="ORDINE" NAME="ORDINE" METHOD="POST"
ACTION="raccoglieord.php">
<LABEL>Sig:
<INPUT TYPE="TEXT" NAME="Sig" ID="Sig" />
</LABEL>
<P><LABEL>Tavolo:
<INPUT TYPE="TEXT" NAME="Tavolo" ID="Tavolo" />
</LABEL></P>
<P><LABEL>Note:
<INPUT TYPE="TEXT" NAME="Note" ID="Note" />
</LABEL></P>
<P>
<INPUT TYPE="SUBMIT" NAME="Submit" ID="Submit" VALUE="Invia" />
</P>
</FORM>
</BODY>
</HTML>

Raccoglieord.php:
PHP:
<HTML>
<HEAD>
<TITLE>Ordine</TITLE>
</HEAD>
<BODY>
<?php include ("conn.php");?>
<?php
$Sig=$_POST ['Sig'];
$Tavolo=$_POST ['Tavolo'];
$Note=$_POST ['Note'];
$Ore=time();
$Ore=date('Y-m-d H:i:s', $Ore);
$query="INSERT INTO Ordini (Sig, Tavolo, Note, Ore)";
$query.="VALUES ('".$Sig."','".$Tavolo."','".$Note."','".$Ore."')";
mysql_query ($query,$conn);
$id = mysql_insert_id();
echo $id;
$query=mysql_query("SELECT Descrizione,Prezzo FROM menu WHERE Attivo=1 ORDER BY Settore"); 
 echo "<table><td>Descrizione</td><td>Prezzo</td><td>Quantità</td><td>Note</td>"; 
 echo "<FORM ID='RIORDINE' NAME='RIORDINE' METHOD='POST' ACTION='righeord.php'>";
 echo "<input type='TEXT' name='id' value='".$id."'>";
 $i=0;
while($riga=mysql_fetch_array($query))
{   
 echo "<tr><td>".$riga['Descrizione']."</td><td>".$riga['Prezzo']."</td>";
echo "<td><INPUT TYPE='TEXT' NAME='Quanti".$i."' ID='Quanti".$i."' /></td>";
echo "<td><INPUT TYPE='TEXT' NAME='Note".$i."' ID='Note".$i."' /></td></tr>";
$i ++;
}
?>
</table>
<P>
<INPUT TYPE="SUBMIT" NAME="Submit" ID="Submit" VALUE="Invia" />
</P>
</FORM>

</BODY>
</HTML>

Righeord.php
PHP:
<?php include ("conn.php");?>
<?php 
$id=$_POST ['id'];
$query1 = "SELECT * FROM menu WHERE Attivo=1";     
$result = mysql_query($query1) or die (mysql_error());     
$conta = mysql_num_rows($result); 
$query2=mysql_query("SELECT * FROM menu WHERE Attivo=1 ORDER BY Settore");
for ($i=0;$i<$conta;$i++){    
$riga=mysql_fetch_array($query2);
$Quanti=$_POST ["Quanti".$i];
$Note=$_POST ["Note".$i];
$Articolo = $riga['ID'];
$Prezzo = $riga['Prezzo'];
if ($Quanti != 0){
  $query="INSERT INTO `righe ordini` (Articolo, Note, Quanti, Prezzo, Ordine)";
$query.="VALUES ('".$Articolo."','".$Note."','".$Quanti."','".$Prezzo."','".$id."')";
mysql_query ($query,$conn);
echo $query;
}
} 
echo $id;
?>
<?php include ("close.php");?>

Grazie a tutti e Buon Lavoro :byebye:
 
Discussioni simili
Autore Titolo Forum Risposte Data
felino Contact Form 7: messaggio di conferma sotto il modulo? WordPress 1
asevenx Eliminare spazio vuoto sotto alla textarea di un form HTML e CSS 0
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 15
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3
R [C#] Form principale si blocca mentre un altro Thread lavora .NET Framework 0
M Problema con controllo form in real time jQuery 6
D Form validazione Javascript 2
R form recovery pass PHP 0
V Symfony e i form PHP 3
M form con checkbox PHP 8
S come aggiustare un form di contatto? HTML e CSS 3
F query e form con select multipla PHP 17
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
A Inserimento dati nel database tramite form + altre operazioni PHP 18
websilvia Contact form using Bootstrap 3.3.4 PHP 8
Alex_70 Button non funziona nella form PHP 2
C Form email php su pagina index.html? PHP 21
W Rinominare Documenti Con Form Asp Classic ASP 9
S Invio email da form PHP 8
L form multipla php sql,errore in inserimento MySQL 0

Discussioni simili