Visualizzazione dei risultati da 1 a 8 su 8

Discussione: aiuto ciclo if

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    6

    aiuto ciclo if

    Ciao a tutti, ho un problema con un ciclo if.
    devo fare eseguire una query per la ricerca di campi in un db.
    ho tre elementi (id, nome, cognome) la ricerca deve essere possibile con tutte le combinazioni possibili (o solo id, o id e nome o nome e cognome, ecc)
    come devo impostare i cilci if? io ho fatto così ma non mi funziona.
    aiutatemi pliss
    PS correggetemi anche se trovate qlc errore di sintassi...sono alle prime armi!
    grazie


    $id = $_POST['codba'];
    $nome = $_POST['nomeart'];
    $cognome = $_POST['codcd'];

    if ($id != " "){
    $query_id ="select * from tabella where ida = '" . $id ."'";
    $result = mysql_query($query_id) or die('Query failed: ' . mysql_error());}

    elseif ($nome != " "){
    $query_nome ="select * from tabella where nomea = '" . $nome ."'";
    $result = mysql_query($query_nome) or die('Query failed: ' . mysql_error());}

    elseif ($cognome != " "){
    $query_cognome ="select * from tabella where cognomea = '" . $cognome ."'";
    $result = mysql_query($query_cognome) or die('Query failed: ' . mysql_error());}

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    ?>
    <table>
    <tr>
    <td><?php echo $row["ida"]; ?></td>
    <td><?php echo $row["nomea"]; ?></td>
    <td><?php echo $row["cognomea"]; ?></td>
    </tr>
    <?php
    } ?>






    </table>

  2. #2
    1. Inserisci il codice sempre tra gli appositi tag (PHP tra parentesi quadre e /PHP tra parentesi quadre), ci faciliti il compito.

    2. Se ho capito bene il tuo problema: Fai in modo di creare la query dinamicamente.

    Inizi a scrivere la query

    $query = "select * from tabella where ";

    poi controlli se é settato $id, se sì aggiungi id alla ricerca

    $query .= "$ida='$id' OR ";

    e così via

    $query .= "$nomea='$nome' OR ";

    e termini con

    $query .= "0";

    in modo da non lasciare in sospeso l'ultimo or
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    3. Verifica con emty() se i campi sono vuoti, come lo hai scritto tu (if ... != " " lasci uno spazio) significa se il valore é diverso da spazio.

    4. Esegui un trim() sui valori
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    6
    grazie per l'aiuto...
    però non capisco la query che mi hai detto. perchè devo mettere $ida=$id ecc
    $id è la variabile mentre ida è il campo nel DB, non una variabile.

    Però la mia domanda era come prevedere tutti i possibili casi. nel caso uno inserisca (nelle caselle di ricerca della pag precedente) o solo id o solo nome o tutti insieme ecc...
    quindi come impostare gli if
    grazie

  5. #5
    Originariamente inviato da jazzopo
    grazie per l'aiuto...
    però non capisco la query che mi hai detto. perchè devo mettere $ida=$id ecc
    $id è la variabile mentre ida è il campo nel DB, non una variabile.
    Si, ho sbagliato.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    Originariamente inviato da jazzopo

    Però la mia domanda era come prevedere tutti i possibili casi. nel caso uno inserisca (nelle caselle di ricerca della pag precedente) o solo id o solo nome o tutti insieme ecc...
    quindi come impostare gli if
    grazie
    Appunto. Crea un'unica query dinamicamente
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    6
    ho provato a fare così ma non va...

    Codice PHP:
    $id $_POST['codba'];
    $nome $_POST['nomeart'];
    $cognome $_POST['codcd'];

    $query "select * from tabella where";

    if (isset(
    $id)){{
    $query .= "ida = '" $id ."' or ";} 

    elseif (isset(
    $nome)){
    $query .= "nomea = '" $nome ."' or ";} 
                    
    elseif (isset(
    $cognome)){
    $query .= "cognomea = '" $cognome ."'"
    $result mysql_query($query) or die('Query failed: ' mysql_error());  }
                            
    while (
    $row mysql_fetch_array($resultMYSQL_ASSOC)) 

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    6
    ce l'ho fatta!
    semplicemente ho fatto un if solo
    Codice PHP:
    if ((isset($id)) or (isset($nome)) or (isset($cognome))){
    $query "select * from tabella where ida = '" $id ."' OR nomea = '" $nome ."' OR cognomea = '" $cognome ."'";
    $result mysql_query($query) or die('Query failed: ' mysql_error());} 
    grazie mille dell'aiuto!!!

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.