Ciao,
sto impazzendo con un carrello fatto in casa. Il punto è che i prodotti sono di due tipi: fisici (da spedire) e virtuali (da scaricare). Pertanto, nella misura in cui nel carrello compaiano entrambi i tipi di prodotto, vorrei non far visualizzare il form per la scelta del metodo di spedizione (in altri termini, la presenza nel carrello di un prodotto "fisico" deve assorbire la presenza di uno o più prodotti scaricabili).
Fino ad ora ho provato a fare una cosa del tipo
Codice PHP:
$db mysql_connect($host$user$password);
mysql_select_db($dbname$db)
or die (
"Errore nella selezione del database. Verificare i parametri nel file config.php");
  foreach (
$_SESSION['jnb_quantity'] as $prod=>$qta)
  {
    
$query"SELECT * FROM libri where id = '$prod'";
    
$rs mysql_query($query) or die(mysql_error());
    
$row mysql_fetch_array($rs);
    
$titolo2 str_replace("
"
," "$row['titolo']);
    
$costo sprintf("%01.2f",$row['prezzo']*$qta);
    
$tot+=sprintf("%01.2f",$costo);
    
$globale sprintf("%01.2f",$tot);
    echo 
"<tr><td class='col'>";
         if(!isset(
$_SESSION['spese'])) {
         if (
$row['tipo'] == 'l') {
              
$_SESSION['spese'] = 'y';
              echo
"";
              } else { echo
"PDF - "$_SESSION['spese'] = 'n'; }
         } 
prendo l'id prodotto e la quantità registrati in sessione e li uso per estrapolare dal db nome prodotto, prezzo e tipo (se trattasi di prodotto fisico (tipo=L), di prodotto virtuale (tipo=P)).
Nella parte finale, se $_session[spese] == y, stampo il form per la scelta del metodo di spedizione
Il problema è che tutto funge quando ragioni con prodotti uniformi (se inserisco il fisico, vedo la spedizione; se inserisco il virtuale, non la vedo......ma se li mischio nel carrello è come se prevalesse sempre $_session[spese] != y.
Come mai questo? Forse perchè sto giocando nel foreach?
Ho pensato che forse potrei risolvere cercando in tutte le righe ricavabili dalla query: se ne esce anche solo una con tipo==P, allora devo inibire la stampa della form per la spedizione.
Mi date una mano? Sto impazzendo!
Grazie infinite a tutti