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

    Ricerca multipla: come ignorare opzioni voute?

    ciao a tutti

    sto elaborano una pagina contenente il form che permette all'utente di scegliere alcune voci per effeture una ricerca multipla, dandogli la possibilità di lasciare anche le voci vuote. Queste informazioni passano via GET in un'altra pagina. Il problema è che non so come ignorare quelle lasciate vuote per la ricerca nel db? Se fossero tutte da ricercare farei:
    Codice PHP:
    if(isset($_GET['voce1']) && ($_GET['voce2']) ecc.)
    // e poi la query di ricerca 
    ma siccome nella query devo evitare quelle lasciate vuote: come devo fare?

  2. #2
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Preleva i dati get per la ricerca e mettili in un array.
    $dati = array();
    if(isset($_GET['voce1']) {
    $dati[] = $_GET['voce1'];
    }
    cosi' per tutti i dati e poi fai la query in un ciclo.

  3. #3
    grazie 1000!

    dovrei quindi fare:
    Codice PHP:
    $dati = array(); 
    if(isset(
    $_GET['voce1']) { 
    $dati['voce1'] = $_GET['voce1']; 
    }
    if(isset(
    $_GET['voce2']) { 
    $dati['voce2'] = $_GET['voce2']; 
    }
    //e cosi via 
    giusto?

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    fai come ho fatto io:

    $dati[] = $_GET['...'];

    cosi si incrementa da solo a ogni variabile vera.

    poi col ciclo esegui la query per ogni dato dell'array

    foreach($dati as $parola_ricerca){
    $sel = "select * from tabella where campo='".$parola_ricerca."'";
    }

  5. #5
    grazie davvero
    Ultima cosa: facendo una prova ho visto che memorizza nell'array solo le variabili effettive solo se aggiungo all 'if ($_GET['model_nome'] != "") come nel codice di sotto, puo essere?


    Codice PHP:
    $dati = array();  
    if(isset(
    $_GET['model_nome']) && ($_GET['model_nome'] != "" )) {  
    $dati[] = $_GET['model_nome'];  
    }
    if(isset(
    $_GET['model_id']) && ($_GET['model_id'] != "" )) {  
    $dati[] = $_GET['model_id'];  
    }
    foreach(
    $dati as $parola_ricerca){ 
    echo 
    $parola_ricerca;
    echo 
    "ciao";


  6. #6
    Originariamente inviato da marco80
    fai come ho fatto io:

    $dati[] = $_GET['...'];

    cosi si incrementa da solo a ogni variabile vera.
    finchè non ti ritrovi in un ambiente serio che ti spara tutti i notice quante GET non ci sono, più il primo per non aver dichiarato l'array


    Originariamente inviato da marco80
    poi col ciclo esegui la query per ogni dato dell'array

    foreach($dati as $parola_ricerca){
    $sel = "select * from tabella where campo='".$parola_ricerca."'";
    }
    esiste la clausola OR che ti permette di fare una sola query invece di N decisamente superflue / pesanti
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.