- Home
- Categorie
- Coding e Sistemistica
- PHP
- Leggere dati da una sessione e eseguire un if else
-
Leggere dati da una sessione e eseguire un if else
Buon giorno a tutti. Sono ancora a chiedere un aiuto per risolvere un problema che mi assilla. Provo di spegarlo:
- Ho un carrello elettronico con articoli inseriti
- Gli articoli sono salvati su una sessione
- Alcuni articoli hanno la specifica "consegna gratuita" ($array[congratis]), altri no
ecco il problema:
Se nel carrello esistono articoli con consegna gratuita tutta la consegna è gratuita, senno la consegna è a pagamento con un 1,5% sul totale.
ecco cosa ho:
$dati = mysql_query("SELECT * FROM art ORDER BY id ASC");
$consegnagratis = 1;
$esci = 0;
while ($array = mysql_fetch_array($dati) AND $esci == '0')
{
$pro = "prodotto[$array[id]]";
if(isset($_SESSION[$pro]))
{
if($array[congratis] == '0')
{
$consegnagratis = 0;
$esci = 1;
}$totale = $totale + $parziale;
$totalone = $totale;
$_SESSION[totale] = $totale;
$_SESSION[totalone] = $totalone;
}
}if($consegnagratis == '0')
{
//CALCOLA I COSTI DI CONSEGNA
$costiconsegna = $_SESSION[totalone] * 0,015;
print "La consegna costa $costiconsegna ";
}
else
{
// SCRIVI CHE LA CONSEGNA E' GRATUITA
print "La consegna è Gratuita";}
Bene, non funziona, ovvero se inserisco un articolo con consegna gratuita rimane sempre consegna a pagamento......
dove sbaglio?
Grazie anticipatamente a chi potrà, vorrà.rrweb
-
Credo sia un problema di MySQL o semplicemente delle if, ma a cosa servirebbe la variabile esci?
Comunque, prova così:
[PHP] while ($array = mysql_fetch_array($dati) AND $esci == '0')
{
$pro = "prodotto[$array[id]]";
if(isset($_SESSION[$pro]))
{
if($array[congratis] == '0')
{
$consegnagratis = 0;
$esci = 1;$totale = $totale + $parziale;
$totalone = $totale;
$_SESSION[totale] = $totale;
$_SESSION[totalone] = $totalone;
}
}
}[/PHP]
-
la variabile esci dovrebbe far smettere il controllo nel while appena trova un articolo con le caratteristiche richieste.
nel mysql che problemi dovrebbero esserci?
e nelle if else?grazie.