Visualizzazione risultati 1 fino 12 di 12

Discussione: Motore di ricerca che cerca nel db del mio sito

  1. #1
    Guest

    Predefinito Motore di ricerca che cerca nel db del mio sito

    Salve, stò cercando uno script di un motore di ricerca che attraverso delle query ricerchi in una determinata tabella del mio db e che mi stampi tutte le discussioni presenti in quella tabella che abbiano almeno una parola in comune con la parola scelta nel motore di ricerca. Mi spiego meglio:

    nel mio DB ho:

    ID | TITOLO | TESTO
    1 |Ciao Mondo| Ebbene si, saluto tutti voi
    2 |Un saluto a tutti| Ciao a tutti!
    3 |Come stai? |Ehi, come ti senti

    Se io nell'imput di ricerca metto ciao troverà queste 2 discussioni e ne stamperà il titolo!

    Scusate se mi spiego male e grazie in anticipo!

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Codice:
    SELECT * FROM tabella WHERE testo LIKE '%Ciao%'
    Trova tutte le righe che contengono la parola Ciao all'interno del campo testo.
    Ultima modifica di javascripter : 03-04-2010 alle ore 09.23.35

  3. #3
    Guest

    Predefinito

    $insert = $_POST['insert'];
    $query = "SELECT * FROM news WHERE testo LIKE %$insert%";
    Ok, ho fatto questo codice dove $insert è = a $_POST['insert'] ovvero la parola che avevo ricercato attraverso il form. Adesso per stampare i titoli di tutte le discussioni trovate con la parola $insert come faccio?

  4. #4
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Esequi la query con mysql_query, poi con un while + mysql_fetch_assoc ti estrai i dati:
    Codice PHP:
    $insert = $_POST['insert']; // hai controllato che ai caratteri ' e " venga fatto l'escape??? altrimenti rischi...
    $query = mysql_query("SELECT * FROM news WHERE testo LIKE '%$insert%'");

    while(
    $row = mysql_fetch_assoc($query)) {
    echo
    $row['titolo'] . '<br />'; // $row['campo_della_tabella']
    }

  5. #5
    Guest

    Predefinito

    Codice PHP:
    <?php
    $key
    = $_POST['key'];
    $query = "SELECT * FROM news WHERE (titolo LIKE '%" . $key . "%') OR (testo LIKE '%" . $key . "%') ORDER BY data_post";
    $trovati = mysql_num_rows($query);
    while(
    $row = mysql_fetch_assoc($query)) {
    $id = $row['id'];
    echo
    "<a href='index.php?view=visualizza&id=$id'>'.$row['titolo'].'</a><br />'";
    }
    ?>
    Adesso il codice mi appare così, ma mi dà questo errore:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /membri/enkantar/INCLUDE/risultati.php on line 7
    Ultima modifica di andreafallico : 03-04-2010 alle ore 13.06.18

  6. #6
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Correggi così:
    Codice PHP:
    echo '<a href="index.php?view=visualizza&id=',$id,'">',$row['titolo'],'</a><br />';

  7. #7
    Guest

    Predefinito

    Corretto: adesso non dà più l'errore ma lo script non funziona...

  8. #8
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da XxxJoKeRsxxX Visualizza messaggio
    Corretto: adesso non dà più l'errore ma lo script non funziona...
    Ma non esequi nemmeno la query...

  9. #9
    Guest

    Predefinito

    Questo è il mio codice... Cosa devo fare?

    <?php
    $key = $_POST['key'];
    $query = "SELECT * FROM news WHERE (titolo LIKE '%" . $key . "%') OR (testo LIKE '%" . $key . "%') ORDER BY data_post";
    $trovati = mysql_num_rows($query);
    while($row = mysql_fetch_assoc($query)) {
    $id = $row['id'];
    echo '<a href="index.php?view=visualizza&id=',$id,'">',$row['titolo'],'</a><br />';
    }
    ?>

  10. #10
    Guest

    Predefinito

    ma non esegui la query:

    Codice PHP:

    // recuperi il valore

    $key = $_POST['key'];

    // scrivi la query

    $query = "SELECT * FROM news WHERE (titolo LIKE '%" . $key . "%') OR (testo LIKE '%" . $key . "%') ORDER BY data_post";

    // qua devi effettuare la query

    $risultato = mysql_query($query) or die (mysql_error());

    // e ora qua puoi iniziare il tuo while e non devi inserire $query ma bensì $risultato
    // e utilizza mysql_fecth_arrow apposta di mysql_fecth_assoc

    while($row = mysql_fetch_assoc($query)) {

    // e scrivi quello che vuoi

    $id = $row['id'];
    echo
    '<a href="index.php?view=visualizza&id=',$id,'">',$row['titolo'],'</a><br />';
    }

  11. #11
    Guest

    Predefinito

    Non funzia neanche ora!

  12. #12
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Si ha sbagliato variabile scacchirako.

    Codice PHP:
    // recuperi il valore

    $key = $_POST['key'];

    // scrivi e esegui la query

    $query = mysql_query("SELECT * FROM news WHERE (titolo LIKE '%" . $key . "%') OR (testo LIKE '%" . $key . "%') ORDER BY data_post") or die(mysql_error());

    // e ora qua puoi iniziare il tuo while e non devi inserire $query ma bensì $risultato
    // e utilizza mysql_fecth_arrow apposta di mysql_fecth_assoc

    while($row = mysql_fetch_assoc($query)) {

    // e scrivi quello che vuoi

    $id = $row['id'];
    echo
    '<a href="index.php?view=visualizza&id=',$id,'">',$row['titolo'],'</a><br />';
    }

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •