Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662

    Ricerca generica con FULL-TEXT

    Ciao a tutti, rieccomi a chiedere il vostro aiuto.

    Dunque, ormai saprete benissimo che sto portando avanti un progettino e che mi sono ficcato a "capabbash" nel php e mysql, dei quali non sapevo nulla...

    Siamo agli sgoccioli, mi mancano poche cose (un campo di ricerca generica, il sistema di pagamento e il controllo di tutti i campi per evitare l'sql-injection).

    Ora mi sto cimentando con la ricerca.
    Ho letto sta queste discussioni e sul web in genere che bisognerebbe utilizzare FULL-TEXT.

    Io ho già creato nelle tabelle del database gli indici :
    ALTER TABLE nomeTabella ADD FULLTEXT(primoCampo, secondoCampo, terzoCampo, ...);

    Ho due problemi ora.

    1) quando passa alla pagina con il php per eseguire la ricerca mi perde la variabile GET della pagina:

    Codice PHP:
    <form action="?page=fsearch" method="GET">
        <
    div class="alignSearch">
            <
    input id="fsrc" name="fsrc" class="inputSearch" type="text">
        </
    div>
        <
    div class="alignSearch">
            <
    input class="imgSearch" name="submit" id="submit" type="image" src="images/cercaoff.jpg" alt="Cerca" border="0">
        </
    div>
    </
    form
    Praticamente l'indirizzo invece di essere:
    http://www.mywebsitezzz.xx/?page=fsearch&fsrc=pippo
    diventa
    http://www.mywebsitezzz.xx/?fsrc=pippo


    2) Ovviamente non funziona

    Questo è il codice che utilizzo nella pagina fsearch.php

    Codice PHP:
    include "reg/db_config.php";
    $connect mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");
    mysql_select_db($db$connect);

    $txt $_GET['fsrc'];

    $query "SELECT * FROM
            users
            INNER JOIN
            a_data ON users.id_user=a_data.id_user
            WHERE MATCH(nome, cognome, username, genere1, genere2, genere3, descrizione) AGAINST(
    $txt)"
            
    ;
    $res mysql_query($query,$connect);

    while(
    $row=mysql_fetch_array($res)){
        echo 
    "nome: ".$row[nome];
        echo 
    "
    "
    ;
        echo 
    "cognome: ".$row[cognome];

    Mi dice:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /web/htdocs/www.mywebsitezzz.xx/page/freesearch.php on line 17
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  2. #2
    Prova così

    codice:
    <form action="" method="GET">
    <input name="page" class="fsearch" type="hidden">
        <div class="alignSearch">
            <input id="fsrc" name="fsrc" class="inputSearch" type="text">
        </div>
        <div class="alignSearch">
            <input class="imgSearch" name="submit" id="submit" type="image" src="images/cercaoff.jpg" alt="Cerca" border="0">
        </div>
    </form>

  3. #3
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ok! Grande (non avevo pensato a questa soluzione)
    Ora mi passa alla pagina giusta. (ho cambiato solo value al posto di class)

    Problema 1 risolto...

    Ma cosa sbaglio al problema 2?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  4. #4
    Per il problema 2 mi sembra sia un errore sulla query, quindi stampala e provala tramite phpMyAdmin o simili.

  5. #5
    ciao,

    nella query metti tra apici la variabile $txt.

    ciao

  6. #6
    Assicurati anche di fare l'escaping di $txt...altrimenti se ad esempio hai nome = dall'egro, quando metti gli apici diventa 'dall'egro' e va in errore la query. Deve diventare 'dall\'egro'.
    Inoltre fai sempre la pulizia dei dati in ingresso, per evitare sql injections..


  7. #7
    usa la funzione mysql_real_escape_string e sei a posto; prima però assicurati di avere aperto una connessione corretta al db.

    ciao

  8. #8
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Wow!!!!!!
    Siete fantastici!

    Finisco una pagina per il sito di un cliente e provo subito... più tardi vi faccio sapere!

    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  9. #9
    Originariamente inviato da bANART
    ormai saprete benissimo che sto portando avanti un progettino e che mi sono ficcato a "capabbash" nel php e mysql, dei quali non sapevo nulla...
    Originariamente inviato da bANART
    Finisco una pagina per il sito di un cliente
    ... queste sono cose che mi fanno incazzare...
    ... non voglio usare il termine "truffa" ma non sarebbe del tutto fuoriluogo...
    ... povero cliente "truffato"...

  10. #10
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Oly ma stai scherzando???
    Pesa le parole prima di avventarti sulla tastiera...

    Guarda che il sito che sto facendo per questo cliente non ha nulla a che fare con il progetto che sto portando avanti e che spesso discuto sul forum.

    Per il cliente in questione devo fare delle semplici paginette per un sito "vetrina" dove la parte di PHP più elaborata è quella di scegliere la lingua. (ed è anche l'unica)
    Il progetto che sto portando avanti io è una cosa totalmente MIA! Un sito MIO come può essere un blog o una gallery, soltanto che voglio farlo funzionare per fare iscrivere la gente.

    Mi spiegheresti dov'è sta truffa?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

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.