Visualizzazione dei risultati da 1 a 9 su 9

Discussione: PHP-Mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    8

    PHP-Mysql

    Salve a tutti,

    ho questo problemino:

    ho un motorino di ricerca in php che cerca la parola chiave in mysql e restituisce la righe corrispondenti alla chiave ad una variabile in flash. Tutto funziona perfettamente tranne che di tutte le righe che incontra con quella parola chiave, mi restituisce solo l'ultima... Io vorrei che mi desse tutte le righe dove trova la parola chiave inserita...
    Posto il codice dello script:

    <?php
    // configurazione
    $word =$_POST['word'];
    $db_host = "localhost";
    $db_user = "root";
    $db_password = "mirkaccio";
    $db_name = "prodotti";


    // connessione
    $db = mysql_connect($db_host, $db_user, $db_password) or die("non riesco a connettermi");
    $db_sel = mysql_select_db($db_name) or die("non riesco selezionare il database");

    // formattazione query
    $query = "SELECT * FROM articoli WHERE titolo = '$word'";

    // esecuzione query
    $query_results = mysql_query($query) or die(mysql_error());

    // stampa risultati
    while($fetch = mysql_fetch_array($query_results))
    {
    echo"&risultati=Risultati della ricerca per: $word
    +$fetch[titolo]+$fetch[link]
    ";
    }
    ?>


    VI PREGO AIUTATEMI!!!

  2. #2
    Utente di HTML.it L'avatar di grendy
    Registrato dal
    Aug 2003
    Messaggi
    338
    prova cosi
    codice:
    // esecuzione query
    $query_results = mysql_query($query);
    
    // stampa risultati
    $record = mysql_num_rows($query_results);
    if ($record != 0 ) {
      for ($r=0; $r <= $record - 1; $r++){
        $fetch = mysql_fetch_array($query_results);
        echo "Risultati della ricerca per: " . $word . "
    " . $fetch['titolo'] . $fetch['link'] . "
    ";
      }
    }
    «Sono le azioni che contano. I nostri pensieri, per quanto buoni possano essere, sono perle false fintanto che non vengono trasformati in azioni. Sii il cambiamento che vuoi vedere avvenire nel mondo». (Mahatma Gandhi)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    8
    sempre lo stesso risultato...

    cmq il pezzo di script che mi hai dato ho dovuto modificarlo così:

    // esecuzione query
    $query_results = mysql_query($query);

    // stampa risultati
    $record = mysql_num_rows($query_results);
    if ($record != 0 ) {
    for ($r=0; $r <= $record - 1; $r++){
    $fetch = mysql_fetch_array($query_results);
    echo "&Risultati=Risultati della ricerca per: " . $word . "
    " . $fetch['titolo'] .

    $fetch['link'] . "

    ";
    }
    }

    altrimenti non mi dava nessun risultato di ricerca...

    Ti prego aiutami...

    Voglio precisare che i risultati vengono restituiti ad una variabile in flash chiamata appunto Risultati...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    8
    Per un attimo ho creduto di aver risolto con questo codice...ma all'atto pratico i trovo con il problema inverso:

    adesso la ricerca mi restituisce come risultati anche record dove la parola chiave non c'è....

    AIUTATEMI...VI PREGO...

    <?php
    // configurazione
    $word =$_POST['word'];
    $db_host = "localhost";
    $db_user = "root";
    $db_password = "";
    $db_name = "prodotti";


    // connessione
    $db = mysql_connect($db_host, $db_user, $db_password) or die("non riesco a connettermi");
    $db_sel = mysql_select_db($db_name) or die("non riesco selezionare il database");

    // formattazione query
    $select = "SELECT * FROM articoli WHERE titolo like '%$word%'";

    // esecuzione query
    $result = mysql_query($select);
    $rows = mysql_num_rows($result);

    // stampa risultati
    while($fetch = mysql_fetch_array($result)){

    $id = $fetch["id"];
    $titolo = $fetch["titolo"];
    $descrizione = $fetch["descrizione"];
    $prezzo = $fetch["prezzo"];

    print("Total=$rows&Oggetto$id=$titolo|$descrizione |$prezzo&");
    }
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    116
    proviamo questa soluzione... Te la scrivo in modo generico!

    allora per primo proviamo a fare la query:

    $query=mysql_query ("SELECT * FROM * WHERE *;");

    $i=0;
    while ($result=mysql_fetch_array($query,MYSQL_NUM)){
    echo $result[i];
    $i++;

    }

    Se noti ho impostato gli indici con l'opzione MYSQL_NUM...
    Considerazioni:
    - incremento la variabile $i altrimenti mi restituisce l'ultimo record disponibile della query
    - lavorando con gli indici i vettori in php partono da 0 quindi ogni incremento della variabile $i deve essere fatto subito prima della parentesi di chiusura del ciclo while


    Ho notato che nel tuo primo script non incrementi il progressivo del vettore quindi è probabile che ti dia sempre l'ultimo record (se non sbaglio è il tuo problema...)

  6. #6
    Utente di HTML.it L'avatar di grendy
    Registrato dal
    Aug 2003
    Messaggi
    338
    Originariamente inviato da totoiv
    Per un attimo ho creduto di aver risolto con questo codice...ma all'atto pratico i trovo con il problema inverso:

    adesso la ricerca mi restituisce come risultati anche record dove la parola chiave non c'è....

    AIUTATEMI...VI PREGO...

    ...

    // formattazione query
    $select = "SELECT * FROM articoli WHERE titolo like '%$word%'";

    ...
    la query è giusta, dovrebbe restituirti tutti i record che nel titolo hanno contenuto $word, se vuoi tutti quelli che cominciano per $word usa like '$word%'
    «Sono le azioni che contano. I nostri pensieri, per quanto buoni possano essere, sono perle false fintanto che non vengono trasformati in azioni. Sii il cambiamento che vuoi vedere avvenire nel mondo». (Mahatma Gandhi)

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    8
    Originariamente inviato da djkirk
    proviamo questa soluzione... Te la scrivo in modo generico!

    allora per primo proviamo a fare la query:

    $query=mysql_query ("SELECT * FROM * WHERE *;");

    $i=0;
    while ($result=mysql_fetch_array($query,MYSQL_NUM)){
    echo $result[i];
    $i++;

    }

    Se noti ho impostato gli indici con l'opzione MYSQL_NUM...
    Considerazioni:
    - incremento la variabile $i altrimenti mi restituisce l'ultimo record disponibile della query
    - lavorando con gli indici i vettori in php partono da 0 quindi ogni incremento della variabile $i deve essere fatto subito prima della parentesi di chiusura del ciclo while


    Ho notato che nel tuo primo script non incrementi il progressivo del vettore quindi è probabile che ti dia sempre l'ultimo record (se non sbaglio è il tuo problema...)
    NADA DE NADA...non funziona...nn mi dà risultati...

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    8
    Originariamente inviato da grendy
    la query è giusta, dovrebbe restituirti tutti i record che nel titolo hanno contenuto $word, se vuoi tutti quelli che cominciano per $word usa like '$word%'
    Grazie ma niente da fare...mi dà sempre lo stesso risultato...ovvero anche i record dove la parola chiave nn c'è!!!

    Scusa la domanda che forse nn centra niente:

    può dipendere la differenza di risultati dal metodo col quale invio la variabile word allo script. Insomma GET o POST possono dare differenze ai risultati???

    Sono disperatissimo!!!


  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    8

    AIUTATEMI.....VI PREGO

    ANIME PIE...AIUTATEMI VE NE PREGO...

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.