Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[PHP] errore nella costruzione di un Carrello

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[PHP] errore nella costruzione di un Carrello

Messaggioda fede83 » gio mag 20, 2004 10:45 am

Ciao a tutti,
Ho un problema nel far funzionare un carrello[:(!], vi spiego cosa ho fatto:
1) ho fatto un database vuoto con mysql, l'ho chiamato carrello. E' formato da questi campi id (chiave primaria), codice, nome, descrizione, quantita, prezzo, totale

2) nel sito che sto costruendo ho inserito una immagine e un posto per scrivere la quantita di prodotto che si vuole ordinare affianco a ogni prodotto. La funzione di questa immagine è quella di aggiungere i prodotti e la quantità al carrello.

Problema:
quando clicco sull'immagnine non mi aggiunge niente al carrello mi visualizza solo la tabella del database vuota.

Io vi invio due codici:
codice del carrello:

<?php

$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("test") or die ("connessione fallita");

$sql="INSERT INTO carrello (codice,nome,descrizione,quantita,prezzo,totale)
VALUES ('". $_GET['codice'] ."','". $_GET['nome'] ."','". $_GET['descrizione'] ."','". $_GET['prezzo'] ."','". $_GET['quantita'] ."','".$_GET['totale']."');";
@mysql_query($sql) or die ("query fallita : $sql");




$sql = "SELECT codice,nome,descrizione,quantita,prezzo,totale
FROM carrello
WHERE carrello.codice";
$risultato = @mysql_query($sql) or die ("query fallita : $sql");
print "<table border=1 bordercolor=white background=sfondo.gif align=center width=80%>";
print "<tr>
<td><b>CODICE</b></td>
<td><b>NOME</b></td>
<td><b>DESCRIZIONE</b></td>
<td><b>PREZZO</b></td>
<td><b>QUANTITA</b></td>
<td><b>PREZZO TOTALE</b></td>
</tr>";
$qtatot = 0;
$prezzotot = 0;
while ($linea = mysql_fetch_array($risultato)) {
$prezzo = $linea["quantita]*$linea["prezzo];
print "<tr>";
print "<td>".$linea["codice]."</td>";
print "<td>".$linea["nome]." </td>";
print "<td>".$linea["descrizione]."</td>";
print "<td>".$linea["qta]." </td>";
print "<td>".$linea["prezzo]." €</td>";
print "<td>".$linea["totale]." €</td>";
print "<td>".$prezzo." €</td>";
print "</tr>";


}

print "<tr>
</table>";


mysql_free_result($risultato);
mysql_close($conn);

?>

codice dei prodotti dove ce l'immagine del carrello, perche secondo me è qui che do un comando sbagliato:

<?php
print "<table border= bordercolor=#676767 background=sfondo.gif align=center width=80% >
<form action=carrel.php name=frm method=get>";
$fd= fopen ("accessori.csv", "r");
while (!feof ($fd)){
$riga=fgets($fd, 4096);
if($riga!=""){
$arr=split(';', $riga);
print "<tr>";
print "<td>".$arr[0]."</td>";
print "<td>".$arr[1]."</td>";
print "<td>".$arr[2]."</td>";
print "<td>".$arr[5]."</td>";
print "<td><input type=text size=3 name=qta>
<img border=0 src=carrello.gif onclick="document.frm.submit()">
</td>";
}

print "</tr>";
}

print "</form>";
print "</table>";

?>

errori:

Notice: Undefined index: codice in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: nome in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: descrizione in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: prezzo in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: quantita in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: totale in c:easyphp1-7wwwcarrel.php on line 73
La riga 73 corrisponde al values del carrello

spero che qualcuno mi possa aiutare.[dance]
grazie
Avatar utente
fede83
Neo Iscritto
Neo Iscritto
 
Messaggi: 5
Iscritto il: gio mag 20, 2004 10:32 am
Località: Piemonte

[PHP] errore nella costruzione di un Carrello

Messaggioda fede83 » gio mag 20, 2004 10:45 am

Ciao a tutti,
Ho un problema nel far funzionare un carrello[:(!], vi spiego cosa ho fatto:
1) ho fatto un database vuoto con mysql, l'ho chiamato carrello. E' formato da questi campi id (chiave primaria), codice, nome, descrizione, quantita, prezzo, totale

2) nel sito che sto costruendo ho inserito una immagine e un posto per scrivere la quantita di prodotto che si vuole ordinare affianco a ogni prodotto. La funzione di questa immagine è quella di aggiungere i prodotti e la quantità al carrello.

Problema:
quando clicco sull'immagnine non mi aggiunge niente al carrello mi visualizza solo la tabella del database vuota.

Io vi invio due codici:
codice del carrello:

<?php

$conn = @mysql_connect("localhost","root","") or die("connessione fallita");
@mysql_select_db("test") or die ("connessione fallita");

$sql="INSERT INTO carrello (codice,nome,descrizione,quantita,prezzo,totale)
VALUES ('". $_GET['codice'] ."','". $_GET['nome'] ."','". $_GET['descrizione'] ."','". $_GET['prezzo'] ."','". $_GET['quantita'] ."','".$_GET['totale']."');";
@mysql_query($sql) or die ("query fallita : $sql");




$sql = "SELECT codice,nome,descrizione,quantita,prezzo,totale
FROM carrello
WHERE carrello.codice";
$risultato = @mysql_query($sql) or die ("query fallita : $sql");
print "<table border=1 bordercolor=white background=sfondo.gif align=center width=80%>";
print "<tr>
<td><b>CODICE</b></td>
<td><b>NOME</b></td>
<td><b>DESCRIZIONE</b></td>
<td><b>PREZZO</b></td>
<td><b>QUANTITA</b></td>
<td><b>PREZZO TOTALE</b></td>
</tr>";
$qtatot = 0;
$prezzotot = 0;
while ($linea = mysql_fetch_array($risultato)) {
$prezzo = $linea["quantita]*$linea["prezzo];
print "<tr>";
print "<td>".$linea["codice]."</td>";
print "<td>".$linea["nome]." </td>";
print "<td>".$linea["descrizione]."</td>";
print "<td>".$linea["qta]." </td>";
print "<td>".$linea["prezzo]." €</td>";
print "<td>".$linea["totale]." €</td>";
print "<td>".$prezzo." €</td>";
print "</tr>";


}

print "<tr>
</table>";


mysql_free_result($risultato);
mysql_close($conn);

?>

codice dei prodotti dove ce l'immagine del carrello, perche secondo me è qui che do un comando sbagliato:

<?php
print "<table border= bordercolor=#676767 background=sfondo.gif align=center width=80% >
<form action=carrel.php name=frm method=get>";
$fd= fopen ("accessori.csv", "r");
while (!feof ($fd)){
$riga=fgets($fd, 4096);
if($riga!=""){
$arr=split(';', $riga);
print "<tr>";
print "<td>".$arr[0]."</td>";
print "<td>".$arr[1]."</td>";
print "<td>".$arr[2]."</td>";
print "<td>".$arr[5]."</td>";
print "<td><input type=text size=3 name=qta>
<img border=0 src=carrello.gif onclick="document.frm.submit()">
</td>";
}

print "</tr>";
}

print "</form>";
print "</table>";

?>

errori:

Notice: Undefined index: codice in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: nome in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: descrizione in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: prezzo in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: quantita in c:easyphp1-7wwwcarrel.php on line 73

Notice: Undefined index: totale in c:easyphp1-7wwwcarrel.php on line 73
La riga 73 corrisponde al values del carrello

spero che qualcuno mi possa aiutare.[dance]
grazie
Avatar utente
fede83
Neo Iscritto
Neo Iscritto
 
Messaggi: 5
Iscritto il: gio mag 20, 2004 10:32 am
Località: Piemonte

Messaggioda Leo » gio mag 20, 2004 11:02 am

Allora, direi che un errore potrebbe essere nella pagina con il form per il passaggio dei dati, ma può dipendere dal contenuto del file accessori.csv
Così a occhio ti direi che il form che hai creato non passa dati alla pagina php, perché non è stato inserito alcun campo di input dei dati, ma solo una tabella, quindi l'array $_GET di PHP risulta vuoto.
Per avere la conferma, però avrei bisogno di sapere come è fatto accessori.csv. Riusciresti a postarne qualche riga?
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara


Messaggioda theprince » gio mag 20, 2004 12:18 pm

quì ci vuole Rancid

invoco Rancid
Avatar utente
theprince
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 2808
Iscritto il: sab set 20, 2003 3:37 am
Località: Lazio

Messaggioda fede83 » gio mag 20, 2004 1:43 pm

Il file csv sarebbe un documento excel che ho trasformato in CSV, ed è scritto così (telo scrivo a mano):

Code Accessori Pubblico

111 adattatore 20 € icona carr. spazio per
scrivere la quantità

il tutto è racchiuso da una tabella. Spero che capisci quello che ho scritto.
Grazie per l'aiuto.[^]
Avatar utente
fede83
Neo Iscritto
Neo Iscritto
 
Messaggi: 5
Iscritto il: gio mag 20, 2004 10:32 am
Località: Piemonte

Messaggioda Leo » gio mag 20, 2004 5:56 pm

Sì, è come immaginavo, nella prima pagina passi, alla pagina PHP, solo il campo qta come testo, e quindi dall'array $_GET non puoi trovare le chiavi "codice","nome","descrizione", "prezzo", "quantità" e "totale". Questo dovrebbe essere il motivo degli errori che risultano alla riga 73. Per risolvere il problema io ti consiglio di fare un menu a tendina, per consentire la scelta del prodotto, e poi nella casella di testo immetti la quantità.
Il valore che passi nel menu a tendina deve essere univoco per ogni prodotto nel file accessori.csv. In questo modo passando un unico valore, dalla pagina PHP riuscirai a raccogliere dal file tutti i dati del prodotto che ti servono, per andare a riempire il database.

Ti faccio un esempio di form corretto con un menu a tendina:

<form name="prodotti" method="GET" action="prodotti.php">
<select name="tendina">
<option value="Numero identificativo del prodotto">prodotto 1</option>
<option value="Numero identificativo del prodotto">prodotto 2</option>
<option value="Numero identificativo del prodotto">prodotto 3</option>
</select>
<input type="text" name="quantita">
<input type="submit" value="Invia">
</form>

Spero di essere stato abbastanza chiaro...
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda fede83 » ven mag 21, 2004 9:30 am

ok è una buona idea, il problema è che il mio titolare non vuole un menu a tendina, vuole una tabella dove vengono visualizzati tutti i prodotti con la descrizione e dove ce l'icona del carrello.
Per forza in quel modo bisogna fare?
Io ho pensato: nel codice dei prodotti sopra scritto non devo mettere un insert per far capire che quando clicco sull'icona del carrello mi deve inserire il prodotto nel database?

ciao e grazie
Avatar utente
fede83
Neo Iscritto
Neo Iscritto
 
Messaggi: 5
Iscritto il: gio mag 20, 2004 10:32 am
Località: Piemonte

Messaggioda Leo » ven mag 21, 2004 9:57 am

Se non vuole un menu a tendina, l'unico metodo che al momento mi viene in mente è inserire un check box (nel caso si vogliano selezionare più prodotti) o una serie di radio button (nel caso si vogtlia selezionare un solo prodotto) per ogni riga della tabella. Il valore che ogni check box (o radio button) sarà l'identificativo del prodotto selezionato, esattamente come ti aveveo suggerito prima. In questo modo al submit del form avrai un elenco di prodotti selezionati dall'utente del sito.
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda fede83 » ven mag 21, 2004 2:33 pm

ciao,
ho messo le radio button, ho cliccato sul pulsante invia, e non mi aggiunge niente, allora mi sono fatta stampare il codice e mi scrive questo:

INSERT INTO carrello (codice,nome,descrizione,quantita,prezzo,totale) VALUES ('','','','',0,'')

questo vuol dire che non passo nessun parametro vero? [}:)]
Avatar utente
fede83
Neo Iscritto
Neo Iscritto
 
Messaggi: 5
Iscritto il: gio mag 20, 2004 10:32 am
Località: Piemonte

Messaggioda Leo » ven mag 21, 2004 3:01 pm

Esattamente, ancora non funziona il passaggio dei parametri fra le due pagine.

Ti posto un esempio molto semplice di passaggio fra un form e una pagina che stampa ciò che è stato scelto nel form:

Archivio zippato con le due pagine

Ti faccio notare che per semplicità ho passato l'identificativo di una scelta, e non tutti i parametri della scelta effettuata.
Come ti avevo già scritto, ti consiglio di recuperare i dati da accessori.csv anche nella seconda pagina, indicando nel form solo l'identificativo univoco del prodotto scelto.
Avatar utente
Leo
Silver Member
Silver Member
 
Messaggi: 1683
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda MpMp » sab mag 29, 2004 9:29 am

<i><input type="hidden" value="<? scrivi $valore_db ?>">
<? scrivi $valore_db ?></i>

Scusate il mio php maccheronico ma è da un po' che non ci metto le mani, comunque questa è la soluzione più usata nei forum di discussione e nelle gestioni dei carrelli.
In questo modo passi un valore con il form che è appunto invisibile (hidden) al fruitore.

oppure prova questa:

<i><a href="destinazione.php?prodotto=<? $nome_prodotto ?>"><img border=0 src="carrello.gif"></a></i>

nella pagina di destinazione dovrai reinterrogare il database per ricavare i dati da inserire del db.


Piccola postilla da perfezionista noioso: la tabella che hai creato per il carrello non è un gran che...
Detto in amicizia...[:D][:D][:D]
Avatar utente
MpMp
Neo Iscritto
Neo Iscritto
 
Messaggi: 6
Iscritto il: mar gen 27, 2004 5:06 pm
Località: Veneto


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising