Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Select con più campi

  1. #1

    Select con più campi

    Salve ragazzi,
    ho un quesito che spesso mi trovo a dover risolvere.
    Ho 5 campi post che mi vengono da un form. l'utente può immetterli tutti o nessuno e quindi posso ricevere da 0 a 5 variabili che devo utlizzare per la query select sul mio db.
    Esempio.

    codice:
    select * from db where (a=$_POST["a"] and b=$_POST["b"] and c=$_POST["c"]  and d=$_POST["d"]  and e=$_POST["e"]);
    Problema:
    se l'utente imposta $_POST["a"], ma non le altre ricevo una query vuota perchè nel db cerca tutte le a=$_POST["a"] ma anche le b=$_POST["b"] dove b è uguale ad una stringa vuota.

    Come fare?

    Grazie

  2. #2
    Metti gli OR al posto degli AND

    P.S. Controlla quelle variabili prima che vengano inserite nel DB...altrimenti sarai molto soggetto a delle injection

  3. #3
    sono d'accordo al 100%

    fagli un escape_string prima di passarle alla query

    ciao
    Ginko
    Il progresso scientifico ? www.cartagodelendaest.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    97
    puoi fare così:

    Codice PHP:
    $query "select * from db where (";
    if (!empty(
    $_POST['a']))
            
    $query $query."a=".$_POST["a"]." and ";
    if (!empty(
    $_POST['b']))
            
    $query $query."b=".$_POST["b"]." and ";
    if (!empty(
    $_POST['c']))
            
    $query $query."c=".$_POST["c"]." and ";
    if (!empty(
    $_POST['d']))
            
    $query $query."a=".$_POST["d"]." and ";
    if (!empty(
    $_POST['e']))
            
    $query $query."e=".$_POST["e"]." and ";
    $query substr($query0strlen($query)-5).')'

  5. #5
    Perfetto.

    Grazie.

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.