Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Motore di Ricerca

  1. #1
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64

    Motore di Ricerca

    Salve a tutti come da titolo sono alle prese con un motore di ricerca,ho già creato tutta la struttura,e funziona abbastanza bene,però il problema sta nel fatto che mi visualizza più volte lo stesso risultato,mi spiego meglio..nel mio DB ho nella tabella articoli: Prodotto1,2,3 e bundle1 con relative descrizioni(descrizione 1-2 ecc.) lo so non ho fantasiaxD comunque se io provo a cercare "bundle,descrizione4" mi stampa 2 volte bundle1,lo stesso vale se cerco"prodotto,descrizione2,mi ritrovo con la lista dei prodotti con 2 prodotti2.Io vorrei far in modo che i risultati uguali vengano stampati una sola volta,ho fatto varie prove,ma nulla =(

    Questo è la parte di codice DX
    Codice PHP:
    if(isset($_POST['Campo'])) $Campo $_POST['Campo'];
     if((
    $Campo == '') || ($Campo == NULL)){
     echo 
    "La ricerca non ha prodotto risultati"
    exit();
     }else{ 
    echo
    '<table border=1 width=40%><tr> <td colspan="6" width = "40%" align=center ><b class="Search">Risultati Ricerca[/b]</td> </table>'
    $Campi preg_split("/[\s,]+/",$Campo); //Divide ad ogni , o spazio 
    $Array array_filter($Campi); //Elimina Valori Nulli
     
    For($I 0;$I<= count($Array)-1;$I++){ 
    $Valori $Array[$I]; 
    $Cerca QuerySemplice("SELECT DISTINCT ID,Prodotto,Descrizione FROM articoli WHERE Prodotto LIKE '{$Valori}%' OR Descrizione LIKE '%{$Valori}%'"); 
    While(
    $row mysql_fetch_assoc($Cerca)){
    $ID $row['ID'];
     
    $Prodotto $row['Prodotto']; 
    $Descrizione $row['Descrizione']; 
    echo 
    '<table border=1 width=40%><tr> <td colspan="1" width = "10%" >'.$Prodotto.'</td> <td colspan="1" width = "10%" >'.$Descrizione.'</td>';
    echo
    '</tr>'

    }


    grazie in anticipo^^

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    io non ho capito i dati di prova come sono... tu cerchi due termini diversi?

  3. #3
    Potresti salvare il risultato delle tue ricerche in un array e ogni risultato simile lo scarti, oppure potresti interrogare in modo il database utilizzando nella query la parola riservata DISTINCT.

    Esempio :
    codice:
    P_Id	LastName	FirstName	Address	City
    1	Hansen	Ola	Timoteivn 10	Sandnes
    2	Svendson	Tove	Borgvn 23	Sandnes
    3	Pettersen	Kari	Storgt 20	Stavanger
    Se eseguo la query
    codice:
    SELECT DISTINCT City FROM Persons
    saranno visualizzati solamente gli utenti che avrannò il campo città con valore differente, ovviamente sarà preso il primo risultato con città valido e il secondo sarà scartato, ma nel tuo caso è indifferente.

    PS: Non avevo letto il codice postato, in questo caso utilizza l'array.

  4. #4
    Utente di HTML.it L'avatar di Keyren
    Registrato dal
    Aug 2012
    Messaggi
    64
    grazie ad entrambi,ma ho già risolto da solo=D,bastava semplicemente dividere la query,la parte con "SELECT DISTINCT ID,Prodotto,Descrizione FROM articoli WHERE" l'ho messa prima del ciclo for il resto all'interno ,così facendo la query,veniva eseguita una sola volta,e non per ogni termine che cercavo^^

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.