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

    Sql: problema query per motore di ricerca database

    Ciao ragazzi,
    ho un motore di ricerca interno al sito, che effettua le ricerche all'interno del mio database.
    Ho un form di ricerca di questo genere:
    - un campo testo per l'immissione della parola chiave;
    - un elenco (SELECT) con due opzioni (VENDO e COMPRO);
    - un elenco di categorie (SELECT) con diverse opzioni;
    - un elenco (SELECT) con due opzioni (NUOVO e USATO);

    Io voglio effettuare la ricerca attraverso l'uso di uno di questi metodi o di tutti assieme, cioè voglio tra i COMPRO gli oggetti USATI della categoria ARREDAMENTO.
    VENDO/COMPRO nella tabella del database hanno i valori v e c, NUOVO/USATO nella tabella del database hanno i vaoli n e u, e le categorie sono contrassegnate da un numero.

    Voglio fare una query unica che mi faccia la ricerca, come questa ad esempio: "SELECT * FROM annunci WHERE (nuovo_usato='n' OR nuovo_usato='u') AND (vendo_compro='v' OR vendo_compro='c') AND (titolo like '%%%$chiave%%%' OR titolo like '%%%$chiave%%%' OR prezzo like '%%%$chiave%%%' OR testo like '%%%$chiave%%%')".

    Ciao e grazie
    Francesco

  2. #2

    Vvi posto il codice del form

    <table cellpadding="0" cellspacing="0">
    <thead>
    <tr>
    <td style="width:20px;">[img]images/ricerca.gif[/img]</td>
    <td>

    Ricerca semplice</p></td>
    </tr>
    </thead>
    </table>
    <form method="post" action="../script/motore.php" style="margin:0px;padding:0px;">
    <table cellpadding="0" cellspacing="0">
    <tbody>
    <tr>
    <td>

    Parola chiave</p></td>
    <td>

    <input type="text" name="key" class="input" style="width:160px;" /></p></td>
    </tr>
    <tr>
    <td>

    Tipo</p></td>
    <td>

    <select name="vendo_compro" style="width:160px;"><option value="all">Tutti gli annunci</option><option value="v" >Vendo / Offro</option><option value="c" >Compro / Cerco</option>
    </select></p></td>
    </tr>
    <?php

    mysql_connect("localhost", "root", "");
    mysql_select_db("mercato");

    $listCAT='';
    $sql = 'SELECT * FROM categorie WHERE id=root ORDER BY nome ASC';
    $query = @mysql_query ($sql);
    $num = @mysql_num_rows ($query);
    while ($row = @mysql_fetch_array ($query)){
    $listCAT.='<option value="'.$row['id'].'" readonly>'.ucfirst($row['nome']).'</option>';
    $sql = 'SELECT * FROM categorie WHERE id!=root AND root='.$row['id'];
    $query2 = @mysql_query ($sql);
    while ($row2 = @mysql_fetch_array ($query2)){
    $listCAT.='<option value="'.$row2['id'].'" >'.ucfirst($row2['nome']).'</option>';
    }
    }
    ?>
    <tr>
    <td>

    Categoria</p></td>
    <td>

    <select name="categoria" style="width:160px;"><option value="all">Tutte le categorie</option><?php echo $listCAT ?></select></p></td>
    </tr>
    <tr>
    <td>

    Tipo</p></td>
    <td>

    <select name="nuovo_usato" style="width:160px;"><option value="all">Tutti i tipi</option><option value="n" >Nuovo</option><option value="u" >Usato</option></select></p></td>
    </tr>
    <tr>
    <td>

    </p></td>
    <td><p align="left"><input type="submit" class="submit" name="easy" value=" cerca " /></p></td>
    </tr>
    </tbody>
    </table>
    </form>

    Struttura tabella ANNUNCI (quella dove faccio la query):
    id, titolo, prezzo, categoria (assume dei numeri da un'altra tabella), vendo_compro (assume valori v/c), nuovo_usato (assume valori n/u), testo.

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.