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

    Motore di ricerca su Tabelle

    Qualche giorno fa girando sul forum ho trovato questo piccolo motore che effettua la ricerca all'interno di una tabella
    Codice PHP:
    <?php
    //$chiave=$_POST['chiave']; 
    $db mysql_connect($db_host$db_user$db_password); 
    if (
    $db == FALSE
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php"); 
    mysql_select_db($db_name$db
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); 
    $keys explode (","$chiave); 
    $query ""
    reset ($keys); 
    while (list(,
    $parola) = each ($keys)) 
    $parola trim($parola); 
    if (
    $parola != ""
    $query "titolo LIKE '%$parola%' OR testo LIKE '%$parola%' OR autore LIKE '%$parola%' OR "

    $query .= "0"
    $query "SELECT id, titolo, data  FROM news WHERE " $query
    $result mysql_query($query$db) OR DIE(
    Errore Numero:"
    mysql_errno() .

    Descrizione: "
    mysql_error());
    $i 0//Contatore 
    while ($row mysql_fetch_array($result)) 
    { echo 
    "<a href=\"view.php?id=$row[id]\">" date("j/n/y"$row['data']) . " - $row[titolo]</a>
    "

    $i++; // Aumento il contatore di uno 
    }
    if (
    $i == 0){
    print 
    "La ricerca non ha prodotto nessun risultato per il termine: "$chiave;
    } elseif (
    $i == 1){
    print 
    "La ricerca ha prodotto numero " $i .  " risultato per il termine: "$chiave;
    } elseif (
    $i 1){
    print 
    "La ricerca ha prodotto numero " $i .  " risultati per il termine: "$chiave;
    }

    print 
    "
    "
    ;  
    ?>
    vorrei, adesso poter effettuare la ricerca su più tabelle.
    In effetti vorrei fare la ricerca su tutte le tabelle del DB, sia quelle che riguardano le news che le altre anche se hanno una struttura diversa.
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Non ho capito una parte di domanda

    Vuoi fare la ricerca su tutte le tabelle del tuo db o di un qualunque db?

  3. #3
    solo delle tabelle presenti nel mio DB

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Devi modificare molto lo script, specialmente se i nomi dei campi delle altre tabelle sono diversi.

    Ad ogni modo puoi usare uno scheletro di questo tipo
    codice:
    $tabelle[0] = "tabella_0";
    $tabelle[1] = "tabella_1";
    $tabelle[2] = "tabella_2";
    
    $campi[0] = {"titolo","nome"};
    $campi[1] = {"titolo","nome",cognome};
    $campi[2] = {"descrizione","email","username"};
    Cosi nella posizione K del primo array hail il nome della tabella, nella posizione K del secondo hai l'elenco dei campi della tabella k-esima

    Poi fai un doppio ciclo
    codice:
    foreach ($tabelle as $idx=>$t)
    {
        $query = "select * from $t where "; 
        
        foreach($campi[$idx] as $c)
        {
            $query .= "$c LIKE '%$chiave%' OR ";
        }
    
        $query .= '0';
    
        
    }
    Insomma una cosa del genere, l'ho buttato giu al volo ma l'idea è quella

  5. #5
    ti ringrazio.
    Ci provo anche se non credo di farcela.
    Comunque 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.