Visualizzazione risultati 1 fino 7 di 7

Discussione: Motore ricerca interno basato su txt

  1. #1
    Guest

    Predefinito Motore ricerca interno basato su txt

    Salve..

    io ho questo script (trovato sul forum)
    Codice PHP:
    <?
    $x
    =0;
    $risultato="";
    $stato=$_GET['stato'];
    $righe=file("file.txt");
    for(
    $i=0;$i<count($righe);$i++) {
    $righe[$i]=explode("|", $righe[$i]);
    if (
    stristr($righe[$i][0], $stato)) {
    $risultato.= "<br><b>" . $righe[$i][0] . '</b> nei gruppi: <i>' . $righe[$i][1] . '</i>';
    $x++;
    }
    }
    if(
    $risultato!==""){
    if(
    $x > 1){
    echo
    "La ricerca di <b>" . $_GET['stato'] . "</b> ha prodotto i seguenti risultati:" . $risultato;
    }else{
    echo
    "Hai cercato". $risultato;
    }
    }else{
    echo
    "La ricerca di <b>" . $_GET['stato'] . "</b> nn ha prodotto risultati";
    }
    ?>
    e passo le variabili tramite un file di testo (esempio)
    in flames|Melodic Death Metal
    usando un form
    Codice HTML:
    <FORM method='post' action="motore.php"> <TABLE><tr><td> <INPUT TYPE=text name='stato' size=31 maxlength=255 value=""> <INPUT type=submit name=cerca VALUE="Cerca"> </td></tr></TABLE> </FORM>
    Ora il problema sta nel fatto che non compaiono risultati! Da sempre "La ricerca di nn ha prodotto risultati"

    Sapete aiutarmi?

  2. #2
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Aspetta..
    allora....secondo me dovresti cambiare il nome dell'array explode, ti crea meno confusione.
    Poi..allora facciamo conto che explode si chiama $abc[]

    Tu hai $abc[0] ---> La parola chiave, $abc[1] ---> Il contenuto

    Giusto?
    Prova a mettere tutto in variabili più chiare, forse risolvi!
    Cmq non capisco dovrebbe andare!

    Codice PHP:
    <?
    $x
    =0;
    $file = file("database.db");
    $conta = count($file);
    rsort($file); //ti consiglio di mettere nel primo spazio del file separato da | un date("ymdHis") come se fosse qualcosa per metterlo in fila con rsort
    $cercato = $_GET['ricerca'];
    if(
    $_GET['ricerca'] != "") {
    echo
    "Hai cercato $cercato<br>";
    for(
    $i = 0;$i<$conta;$i++) {
    $abc = explode("|",$file[$i]);
    $key = $abc[1]; //in $abc[0] sta la data di prima...
    $ris = $abc[2]; //Risultato
    if(stristr($abc[1], $cercato)) {
    $x++;
    echo
    "N°<b>$x</b> : $abc[2]<br>";// N° (bold)1(/bold) : Il contenuto è qui!

    }
    }
    if(
    $x == 0) {
    echo
    "La ricerca di $cercato non ha prodotto risultati!";
    }
    //non l'ho provato ma penso che questo if vada messo fuori altrimenti ti potrebbe dare tanti di questi messaggi :)
    }//questo chiude la condizione del $_GET in alto
    Non penso che funzioni al primo colpo, forse è da rivedere ma il procedimento è quello :)
    Ultima modifica di Leo91 : 28-02-2006 alle ore 11.33.52

  3. #3
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Visto che usi il metodo post nel form, lo devi utilizzare anche nel PHP.
    Sostituisci:
    Codice PHP:
    $stato=$_GET['stato'];
    Con:
    Codice PHP:
    $stato=$_POST['stato'];
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  4. #4
    Guest

    Predefinito

    Grande Funcool! Funziona!
    Grazie dell'aiuto leo, ma non si appoggia db!

    questo è lo script definitivo.. metti che serve a qualcuno:

    Codice PHP:
    <?
    $x
    =0;
    $risultato="";
    $stato=$_POST['stato'];
    $righe=file("file.txt");
    for(
    $i=0;$i<count($righe);$i++) {
    $righe[$i]=explode("|", $righe[$i]);
    if (
    stristr($righe[$i][0], $stato)) {
    $risultato.= "<br><b>" . $righe[$i][0] . '</b> nei gruppi: <i>' . $righe[$i][1] . '</i>';
    $x++;
    }
    }
    if(
    $risultato!==""){
    if(
    $x > 1){
    echo
    "La ricerca di <b>" . $_POST['stato'] . "</b> ha prodotto i seguenti risultati:" . $risultato;
    }else{
    echo
    "Hai cercato". $risultato;
    }
    }else{
    echo
    "La ricerca di <b>" . $_POST['stato'] . "</b> non ha prodotto risultati";
    }
    ?>
    Ultima modifica di metaphor : 28-02-2006 alle ore 11.35.51

  5. #5
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Citazione Originalmente inviato da metaphor
    Grande Funcool! Funziona!
    Grazie dell'aiuto leo, ma non si appoggia db!

    Lo so infatti database.db è un file di testo!
    Cmq lol bastava un pò d'occhio e io ti ho riscritto il codice

    Mattia ti posso mandare a funcool???

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da Leo91
    Lo so infatti database.db è un file di testo!
    Cmq lol bastava un pò d'occhio e io ti ho riscritto il codice
    Si ho visto troppo tardi!

    ma scusa.. un file .db è uguale a uno .txt oppure al server non gliene importa nulla e lo legge uguale?

  7. #7
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da metaphor
    ma scusa.. un file .db è uguale a uno .txt oppure al server non gliene importa nulla e lo legge uguale?
    E' uguale. Puoi mettergli l'estensione che vuoi.

    Citazione Originalmente inviato da Leo91
    Mattia ti posso mandare a funcool???
    No, vi mando già tutti io tramite la mia firma.
    Ultima modifica di funcool : 28-02-2006 alle ore 11.40.31
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

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