Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema su confronto dati

    ciao,
    ho questo codice:
    Codice PHP:
    <?php
    $sid 
    session_id();

        
    // check if the product is already
        // in cart table for this session
        
    $sql "SELECT ct.pd_id, pd.pd_id, abbonamento
                                       FROM tbl_cart ct, tbl_product pd
                                       WHERE ct.pd_id = pd.pd_id
                                       AND pd.pd_id =
    $productId AND ct_session_id = '$sid'";
        
    $result dbQuery($sql);
    while (
    $row dbFetchAssoc($result)) {
        
    extract($row);


              if (
    $abbonamento == 'N' && $_GET['pd'] =='N') {
                echo 
    "il prodotto che stai per inserire è dello stesso tipo presente nel carrello, cioè NON è un abbonamento";
      } elseif (
    $abbonamento == 'S' && $_GET['pd'] =='S') {
                echo 
    "il prodotto che stai per inserire è dello stesso tipo presente nel carrello, cioè è un abbonamento";
      } elseif (
    $abbonamento == 'N' && $_GET['pd'] =='S') {
                 echo 
    "il prodotto che stai per inserire non è dello stesso tipo. Nel carrello hai un prodotto normale, il tuo è un abbonamento";
      } elseif (
    $abbonamento == 'S' && $_GET['pd'] =='N') {
                echo 
    "il prodotto che stai per inserire non è dello stesso tipo. Nel carrello hai un abbonamento, il tuo è un prodotto normale";
      }elseif (
    dbNumRows($result) == 0) {
            
    // put the product in cart table
            
    $sql "INSERT INTO tbl_cart (pd_id, ct_qty, ct_session_id, lang_name, ct_date)
                    VALUES (
    $productId, 1, '$sid', '{$_POST["lingua"]}', NOW())";
            
    $result dbQuery($sql)or die(mysql_error());
        } else {
            
    // update product quantity in cart table
            
    $sql "UPDATE tbl_cart
                    SET ct_qty = ct_qty + 1
                    WHERE ct_session_id = '
    $sid' AND pd_id = $productId";

            
    $result dbQuery($sql)or die(mysql_error());
        }
    }
    il problema è che i controlli che ho messo non funzionano bene.
    se inserisco nel carrello un prodotto e poi ne inserisco un altro dello stesso tipo, funziona, cioè mi stampa il messaggio, se invece il confronto è tra 2 prodotti diversi non succede nulla; il prodotto viene inserito senza nessun controllo...
    cosa sbaglio?

  2. #2
    up...

    mi manca poco dai!

  3. #3
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Non vedo dove definisci la variabile $abbonamento

  4. #4
    Codice PHP:
    while ($row dbFetchAssoc($result)) {
        
    extract($row); 

    ho provato a mettere il controllo prima della dichiarazione

    $sid = session_id();

    ma non funziona...
    :master:

  5. #5
    se non si è capito, ricapitolo cosa voglio fare.
    nel DB ho 2 tipi di prodotti:
    - prodotti normali
    - abbonamenti
    per questioni di spese di spedizione devo fare in modo che se all'interno del carrello ho un prodotto normale, non si può aggiungere un abbonamento e viceversa.
    per distinguere un prodotto da un abbonamento ho aggiunto un campo ENUM nella tabella prodotti, in cui se è un prodotto normale viene identificato come 'N' (default), mentre se è un abbonamento viene indentificato con un 'S'.

    Nella funzione addToCart() che è quella che gestisce l'inserimento, ho aggiunto il codice per provare a fare quel controllo che ho spiegato sopra, però non funziona bene.
    mi visualizza il messaggio solo se inserisco 2 prodotti (o abbonamenti) uguali. altrimenti il controllo non funziona.

    funzione completa:

    Codice PHP:
    function addToCart()
    {

            
    // make sure the product id exist
        
    if (isset($_GET['p']) && (int)$_GET['p'] > 0) {
            
    $productId = (int)$_GET['p'];
        } else {
            
    header('Location:home.php');
        }

        
    // does the product exist ?
        
    $sql "SELECT pd_id, pd_qty
                FROM tbl_product
                 WHERE pd_id = 
    $productId";
                   
    $result dbQuery($sql);

        if (
    dbNumRows($result) != 1) {
            
    // the product doesn't exist
            
    header('Location: home.php?page=cart');
        }

    //  QUI INIZIA IL CODICE PER IL CONTROLLO  

    $sql "SELECT ct.pd_id, pd.pd_id, abbonamento
                                       FROM tbl_cart ct, tbl_product pd
                                       WHERE ct.pd_id = pd.pd_id
                                       AND pd.pd_id =
    $productId";
        
    $result dbQuery($sql);
    while (
    $row dbFetchAssoc($result)) {
        
    extract($row);


              if (
    $abbonamento == 'N' && $_GET['pd'] =='N') {
                echo 
    "il prodotto che stai per inserire è dello stesso tipo presente nel carrello, cioè NON è un abbonamento"; exit;
      } elseif (
    $abbonamento == 'S' && $_GET['pd'] =='S') {
                echo 
    "il prodotto che stai per inserire è dello stesso tipo presente nel carrello, cioè è un abbonamento";exit;
      } elseif (
    $abbonamento == 'N' && $_GET['pd'] =='S') {
                 echo 
    "il prodotto che stai per inserire non è dello stesso tipo. Nel carrello hai un prodotto normale, il tuo è un abbonamento";exit;
      } elseif (
    $abbonamento == 'S' && $_GET['pd'] =='N') {
                echo 
    "il prodotto che stai per inserire non è dello stesso tipo. Nel carrello hai un abbonamento, il tuo è un prodotto normale";exit;
      }
    }
        
    //    QUI FINISCE IL CODICE 

    // current session id
        
    $sid session_id();

        
    // check if the product is already
        // in cart table for this session
        
    $sql "SELECT pd_id
                FROM tbl_cart
                WHERE pd_id = 
    $productId AND ct_session_id = '$sid'";
        
    $result dbQuery($sql)or die(mysql_error());;

        if (
    dbNumRows($result) == 0) {
            
    // put the product in cart table
            
    $sql "INSERT INTO tbl_cart (pd_id, ct_qty, ct_session_id, lang_name, ct_date)
                    VALUES (
    $productId, 1, '$sid', '{$_POST["lingua"]}', NOW())";
            
    $result dbQuery($sql)or die(mysql_error());
        } else {
            
    // update product quantity in cart table
            
    $sql "UPDATE tbl_cart
                    SET ct_qty = ct_qty + 1
                    WHERE ct_session_id = '
    $sid' AND pd_id = $productId";

            
    $result dbQuery($sql)or die(mysql_error());
        }

        } 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.