accodi tutto in una variabile??...beato te.![]()
![]()
ti prego fammi un esempio...il più simile possibile a quello di prima..
lo so che ti sto stressando ma siamo quasi approdati![]()
accodi tutto in una variabile??...beato te.![]()
![]()
ti prego fammi un esempio...il più simile possibile a quello di prima..
lo so che ti sto stressando ma siamo quasi approdati![]()
$var="prodotti ordinati: \r\n";Originariamente inviato da bobonzo
accodi tutto in una variabile??...beato te.![]()
![]()
ti prego fammi un esempio...il più simile possibile a quello di prima..
lo so che ti sto stressando ma siamo quasi approdati![]()
foreach($carrello as £prod=>$qta)
{
//fai la query...
//invece di fare echo bla bla fai
$var.= "bla bla \r\n";
}
$var poi va nel testo della mail
![]()
i tuoi esempi sono delle rivelazioni!!!VVoVe:
![]()
tutto ok. arriva una email a me ed una all'ipotetico compratore.
2 quesiti:
1. la variabile $tot continua a restituire un valore totale zenza decimali.
2. a questo punto non capisco due cose:
a. prima di far inviare una email a me con la notifica dell'ordine vorrei inserire i dati nel db con stato=da confermare; dunque il sistema invia una email al cliente con un link cliccando sul quale si passa da stato="da confermare" a "confermato" (avevo pensato di inviare il link ad uno script che guardando all'id dell'ordine contenuto nella email faccia un UPDATE al record status della tabella ordini....ma è una soluzione sicura?...cioè uno qualunque potrebbe cambiare status).
di solito sono abituato ad inviare al db campi di cui conosco nome e numero (ad es. $nome, $cognome, $indirizzo ...faccio la query e li inserisco in tre differenti record.) ma che succede se come in questo caso non so quanti prodotti sono stati scelti? devo riunire anche qui tutto in una $var (magari separando gli $id prodotto da un segno separatore come il trattino - e fare lo stesso per le quantità) e poi inviare tutto in un campo...per poi poterlo prelevare nella pagina ordini.php e mostrarne i dettagli?
cioè se ho una tabella
ordini -> id_ordine | id prodotto | quantità_prodotto | costo_per_prodotto
se gli $id prodotto sono molteplici e lo stesso dicasi per le quantità...come faccio ad inviare i valori a record unici? ok per id_ordine ma per gli altri?
grazie gui
sprintf("%01.2f",$tot);Originariamente inviato da bobonzo
i tuoi esempi sono delle rivelazioni!!!VVoVe:
![]()
tutto ok. arriva una email a me ed una all'ipotetico compratore.
2 quesiti:
1. la variabile $tot continua a restituire un valore totale zenza decimali.
bravo! se mandi l'id in chiaro io cambio l'id anche solo per vedere che succede.. e confermo l'ordine di qualcun'altro2. a questo punto non capisco due cose:
a. prima di far inviare una email a me con la notifica dell'ordine vorrei inserire i dati nel db con stato=da confermare; dunque il sistema invia una email al cliente con un link cliccando sul quale si passa da stato="da confermare" a "confermato" (avevo pensato di inviare il link ad uno script che guardando all'id dell'ordine contenuto nella email faccia un UPDATE al record status della tabella ordini....ma è una soluzione sicura?...cioè uno qualunque potrebbe cambiare status).
Fai una ricerchina sul forum.... ci dev'essere un thread in cui si parla approfonditamente di come fare un link di conferma per email (in quel caso serve a confermare che l'e-mail sia valida... in questo non è che cambi poi tanto)
Un ciclo e inserisci prodotto peer prodotto.... bada che id ordine in questo caso non dev'essere autoincrementale.. dev'essere semmai autoincrementale nell'altra tabella.. qui devi solo riportarne il valore.di solito sono abituato ad inviare al db campi di cui conosco nome e numero (ad es. $nome, $cognome, $indirizzo ...faccio la query e li inserisco in tre differenti record.) ma che succede se come in questo caso non so quanti prodotti sono stati scelti? devo riunire anche qui tutto in una $var (magari separando gli $id prodotto da un segno separatore come il trattino - e fare lo stesso per le quantità) e poi inviare tutto in un campo...per poi poterlo prelevare nella pagina ordini.php e mostrarne i dettagli?
cioè se ho una tabella
ordini -> id_ordine | id prodotto | quantità_prodotto | costo_per_prodotto
se gli $id prodotto sono molteplici e lo stesso dicasi per le quantità...come faccio ad inviare i valori a record unici? ok per id_ordine ma per gli altri?
grazie gui
![]()
per il link di conferma allora poi vedo.
dunque le tabelle devono essere 2.
io prima inserisco alcuni dati con id autoincrementale e lascio che il db generi quello che sarà l'identificativo dell'ordine
ordini -> id_ordine (per es. è il 5) | id_cliente | stato
poi creo un ciclo(come?) per inserire le varie voci e che hanno come riferimento il 5 (non incrementale nella tabella)
dettagli_ordini -> 5 | $id | $qta | $prezzo | $prezzo*$qta
5 | $id | $qta | $prezzo | $prezzo*$qta
5 | $id | $qta | $prezzo | $prezzo*$qta
cioè la costante è l'id dell'ordine che sarà elemento comune di tutti i record.
dunque poi nella pagina ordini.php posso recuperare una lista con:
id_ordine | nome_cliente (per relazione con tabella clienti) | stato (che sarà fino al click sul link NON CONFERMATO...anche se creando la registrazioni utenti basterà la conferma già avvenuta in fase di registrazione).
cliccando su id_ordine posso accedere a ordine_dettaglio.php dove mostro la lista di tutti i prodotti in tab dettagli_ordini che hanno lo stesso id_ordine
se il ragionamento è corretto mi fai un piccolissimo esempio per "ciclare" la query per l'inserimento in dettagli_ordin ?
scusa ma dall'esempio potrei combinare qualcosa :rollo:![]()
lo stesso ciclo con cui crei il testo della e-mail lo pui utilizzare per fare la query... hi tutti i dati nella sessione.. allora che fai? leggi prodotto per prodotto.. e prodotto per prodotto inserisci l'ordine e accodi alla e-mail...Originariamente inviato da bobonzo
poi creo un ciclo(come?) per inserire le varie voci e che hanno come riferimento il 5 (non incrementale nella tabella)
domandina in progress...
inserimento in ordini con id_ordine autoincrementale (dunque lo metto fuori dal ciclo)
inserimento in ordini_dettaglio dei soliti valori e dunque nel ciclo.Codice PHP:$sql2="INSERT INTO ordini (Id_ordine,Data_ordine,Nome_cliente,Email_cliente,Stato_ordine) VALUES('$id',NOW(),'$nomex','$emailx','in attesa')" or die ("Inserimento ordine non riuscito");
Come diavolo scopro qual'è l'id dell'ordine che ho appena inserito con la query di su per poi passarlo alla query di sotto?![]()
Codice PHP:$sql="INSERT INTO ordini_dettaglio (Id_ordine,Prezzo,Qta,Costo,Totale) VALUES('$id','$prezzo','$qta','$costo','$totale')" or die ("Inserimento ordine non riuscito");
Una domanda originale.![]()
http://se2.php.net/manual/it/functio...-insert-id.php
ciao.
2 problemini:
dopo aver inserito gli elementi identificativi dell'ordine in ORDINI, nel ciclo inserisco la successiva query per inserire ogni prodotto in ORDINI_DETTAGLI e non so perchè ma mi inserisce solo il primo prodotto in cima alla lista. riporto solo il ciclo:
($last_id = mysql_insert_id()
2. per il link di conferma dell'email, ecco lo script che controlla se la stringa md5 (id+parolasegreta) è uguale...e se sì faccio l'update: come diavolo è che non mi aggiorna il record in questione?Codice PHP:foreach ($_SESSION['jnb_quantity'] as $prod=>$qta)
{
include ("config.php");
//mi connetto a mysql
$db2 = mysql_connect($host, $user, $password)or die("Errore nella connessione a MySQL");
mysql_select_db($dbname, $db2)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
$query= "SELECT * FROM libri where id = '$prod'";
$rs = mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($rs);
$titolo = $row['titolo'];
$prezzo = $row['prezzo'];
$titolo = str_replace('
','',$titolo);
$costo = sprintf("%01.2f",$prezzo*$qta);
$tot+=sprintf("%01.2f",$costo);
$totale=sprintf("%01.2f",$tot);
$body.= "$titolo ";
$body.= "$prezzo ";
$body.= "$qta ";
$body.= "$costo ";
$body.= "\n\n";
$db3 = mysql_connect($host, $user, $password)or die("Errore nella connessione a MySQL");
mysql_select_db("$dbname")or die("Errore nella selezione del DB !");
$sql_dettaglio="INSERT INTO ordini_dettaglio (Id_ordine,Id_prodotto,Prezzo,Qta,Costo,Totale) VALUES('$last_id','$prod','$prezzo','$qta','$costo','$totale')" or die ("Inserimento ordine non riuscito");
mysql_db_query("$dbname",$sql_dettaglio,$db3);
mysql_close();
}
grazieCodice PHP:<?php
if(md5($_GET['id'].'segreta') == $_GET['stringa'])
{
$prendi=$_GET['id'];
include ("config.php");
//mi connetto a mysql
$db = mysql_connect($host, $user, $password)or die("Errore nella connessione a MySQL");
mysql_select_db($dbname, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
mysql_select_db("$dbname")or die("Errore nella selezione del DB !");
$sql=("UPDATE ordini stato_ordine='1' WHERE id='$prendi'") or die ("Modifica stato ordine non riuscita");
mysql_db_query("$dbname",$sql,$db);
mysql_close();
}
else
{
echo "Non disponi dell'autorizzazione necessaria a confermare l'ordine.";
exit;
}
?>