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

    come scrivere questa query

    Ciao a tutti, un una tabella su cui eseguire delle ricerche su più campi, con condizioni AND e OR che possono essere scelte.


    Esempio:
    la mia tabella si chiama "articoli" e questi di seguito sono alcuni campi

    id - codice - descrizione - fattura_acquisto - fattura_vendita - note

    nel mio motore di ricerca ho dei campi di input text che per i seguenti campi della tabella:

    codice:
    <input type="text" name="codice">
    
    <select name="select1">
    <option="AND">AND</option>
    <option="OR">OR</option>
    </select>
    
    <input type="text" name="descrizione">
    
    <select name="select2">
    <option="AND">AND</option>
    <option="OR">OR</option>
    </select>
    
    <input type="text" name="fattura_acquisto">
    
    <select name="select3">
    <option="AND">AND</option>
    <option="OR">OR</option>
    </select>
    
    <input type="text" name="fattura_vendita">
    
    <select name="select4">
    <option="AND">AND</option>
    <option="OR">OR</option>
    </select>
    
    <input type="text" name="note">
    
    nella query vorrei scrivere la condizione WHERE in questo modo:
    
    WHERE
    codice LIKE '%$codice%' $select1
    descrizione LIKE '%$descrizione%' $select2
    fattura_acquisto LIKE '%$fattura_acquisto%' $select3 
    fattura_vendita LIKE '%$fattura_vendita%' $select4
    note LIKE '%$note%'
    ho dei problemi quando ho qualche campo di input vuoto, nel senso che... se per esempio non inserisco nessun filtro nell'input "codice" avrò questa query:

    codice:
    ...
    WHERE
    codice LIKE '%%' AND
    descrizione LIKE '%valore scritto%' .....
    e di conseguenza, vedo tutti i record, mentre dovrei vedere solo quelli che contengono il valore scritto nel campo descrizione..

    spero di essere stato chiaro..
    non so come risolvere!
    aquatimer2000

  2. #2
    Basta che tu controlli se una variabile è vuota o no prima di inserirla nelle condizioni della query.
    Ad esempio io faccio così:

    codice:
    $query = "SELECT * FROM Tabella WHERE ";
    if($variabile1 != '') $query .= "variabile1 LIKE '%$variabile1%' AND ";
    
    //....vari if....
    
    $query .= "1=1";
    
    $result = mysql_query($query);

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.