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

    Ricerca in campi specifici

    Salve, leggendo e rileggendo sono arrivata a costruire un bel motore di ricerca. Il mio unico problema č che sbaglio con gli operatori logici e quindi la ricerca mi esce vuota...

    intanto vi posto il mio codice:

    codice:
    ....
    
    if ($conn == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file configura.inc.php");
    mysql_select_db($nomedb, $conn)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $keys = explode (" ", $termine); 
    $query = "";
    reset ($keys);
    while (list(,$parola) = each ($keys)) 
    { 
    $parola = trim($parola);
    if ($parola != "")
    $query .= "nome LIKE '%$parola%' OR sottocategoria LIKE '%$parola%' OR ";
    }
    $query .= "0";
    
    foreach ($_POST['spunta'] as $value) 
    {
    $val = "$val categoria = '$value' OR";
    }
    
    $query = "SELECT * FROM articoli WHERE $val " . $query;
    $result = mysql_query($query, $conn);
    $risultato = mysql_num_rows($result);
    
    if($risultato <= 0){
    
    ....
    Non riesco a capire perchč non vadano al mio caso nč gli OR nč gli XOR nč ovviamente gli AND...
    Ho provato anche in quest'altro modo, ma sempre invano:

    codice:
    ...
    if ($conn == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file configura.inc.php");
    mysql_select_db($nomedb, $conn)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $keys = explode (" ", $termine); 
    $query = "";
    reset ($keys);
    while (list(,$parola) = each ($keys)) 
    { 
    $parola = trim($parola);
    if ($parola != "")
    $query .= "nome LIKE '%$parola%' OR sottocategoria LIKE '%$parola%' OR ";
    }
    $query .= "0";
    
    foreach ($_POST['spunta'] as $value) 
    {
    $val = "$value,$val";
    } 
    $query = "SELECT * FROM articoli WHERE categoria = '$val' " . $query;
    $result = mysql_query($query, $conn);
    $risultato = mysql_num_rows($result);
    
    if($risultato <= 0){
    
    ...

    Chiedo gentilmente a voi se avete una soluzione funzionale...

    In sostanza io intendevo effettuare la ricerca di una o + parole SOLAMENTE nei campi delle tabelle del mio database dove voglio cercare (ovvero in questo caso nei campi NOME e SOTTOCATEGORIE) perō anche SOLAMENTE nelle categorie che un utente sceglie spuntando le checkbox che ho messo nella pagina precedente a questa.

    Le checkbox nella pagina precedente le creo con il ciclo seguente:

    codice:
    $query = "SELECT * FROM categorie ORDER BY numord ASC";
    $result = mysql_query($query,$conn) or die ("Errore nella query");
    
    while ($row = mysql_fetch_array($result)) {
    echo "<input type=\"checkbox\" name=\"spunta[]\" value=\"$row[categoria]\" checked>$row[categoria]\n";
    }
    Spero di essere stata chiara, se avete domande chiedete pure ^___^...


    Ciao, grazie Cris ^__^

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Innanzi tutto prova a vedere se la query non ha errori

    codice:
    $result = mysql_query($query, $conn) or die(mysql_error());
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2024 vBulletin Solutions, Inc. All rights reserved.