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

    non so come fare la clausola WHERE

    Buonasera to all,
    ho una form nella quale c'è:

    codice:
    <INPUT TYPE=CHECKBOX NAME="antipasti[]" VALUE='.$row['nome'].'>'.$row['nome'].'
    </td>
    la pressione del submit mi manda alla pagina scelta.php nella quale devo visualizzare il nome del piatto scelto (possono essere selezioni multiple).
    L'array si costituisce bene (infatti vedo l'array pieno di elementi), ma non so come gestire la clausola WHERE (cosa devo inserire al posto dei punti interrogativi???):

    codice:
    print_r($_POST['antipasti']); // qui vedo l'array riempito
    [...]
    $query="SELECT * FROM $nome_tabella_1 WHERE nome=???????????" ;
    $result=mysql_db_query ($nome_database,$query, $link);
    while ($row=mysql_fetch_array($result)) {
    
    	echo $row."
    ";
    }
    Ho fatto varie prove ma mi da errore myswl_fetch_array. Il ciclo while devo iniziarlo prima? Come?

    Ah... la struttura della tabella è:

    ID_antipasti # nome # descrizione # prezzo

    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Forse, ma non sono sicuro, comunque se hai il tuo array fai una ricerca suggli array per come scorrerli. Vedi un pò, anche se non sono molto esperto di php, purtroppo.


    $a = $_POST['antipasti'] ;

    foreach($a as $tmpkey => $tmpvalue){


    $query="SELECT * FROM $nome_tabella_1 WHERE nome = $tmpkey

    ");

    $result=mysql_db_query ($nome_database,$query, $link);
    while ($row=mysql_fetch_array($result)) {

    echo $row."
    ";
    }
    }

  3. #3
    Ho provato...
    ma ottengo un output di questo tipo:

    Array
    Array
    Array
    Array
    Array

    :master: :master: :master:
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Prova a stampare

    echo $tmpkey."
    " ;

    vedi se stampa le chiavi dell'array, all'interno del foreach, così capisci se l'array è ok.



    poi stampa la sql per vedere se è corretta.

    echo $sql ;


    a questo punto prova il ciclo while dentro e fuori dal foreach, non ricordo, in ogni caso per vedere i record devi fare il ciclo.


  5. #5
    Codice PHP:
    $query="SELECT * FROM $nome_tabella_1 WHERE nome IN('".implode("','",$_POST['antipasti'])."')" ;
    $result=mysql_db_query ($nome_database,$query$link);
    while (
    $row=mysql_fetch_array($result)) {
        echo 
    $row['nome']."
    "
    ;


    C'erano due errori concettuali abbastanza evidenti:
    1.
    Codice PHP:
    echo $row."
    "

    Questo stamperà sempre "Array" poichè il fetch_mysql_array crea strutture di tipo array: devi quindi andare a leggere il valore in base alle chiavi associative (nel mio esempio leggo il campo nome).

    2.
    Invece che eseguire tante query quante sono le key di ricerca, meglio eseguire un unica queri che le raggrupperà tutte e poi ciclare i risultati della query con un while.

    Il codice che ti ho postato dovrebbe quindi fare al caso tuo: eventualmente, poichè non l'ho testato, potrebbe avere un problema nel caso di scelta singola (credo comunque che implode nel caso di una variabile lasci tutto com'è e quindi funziona ugualmente): se così non fosse dimmelo che mettiamo un IF che controlla (con is_array()) la variabile $_POST['antipasti'] e quindi compone la query.

    Saluti,

    facci sapere!
    .. tutti siamo utili, ma nessuno è indispensabile ..

  6. #6
    Funziona alla grande!!



    Ho anche provato la scelta singola, ed è tutto ok.
    Adesso è sufficiente crearmi gli echo desiderati ed il gioco è fatto.
    Mille grazie a te ed a michelepi che siete intervenuti!!

    Ciauz
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

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.