Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Motori di ricerca php mysql

    Ciao a tutti, ho un sito che utilizza php e mysql. Ho una tabella "ARTISTI" e dovrei fare una ricerca nel campo "TITOLO" e "CATEGORIA". Ho preso questo codice

    http://www.sastgroup.com/tutorials/u...on-php-e-mysql

    e l'ho modificato ma mi restituisce questo errore:

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\kappa\search.php on line 33

    il codice del mio "motore di ricerca" è questo. Qualcuno sa dirmi dove sbaglio o come posso fare un motore di ricerca? Grazie.

    <?
    $host="localhost";
    $user="root";
    $password="";
    $database="artisti";
    ?>

    <html>
    <body>

    <form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    Stringa di ricerca:
    <input type="text" size="15" name="keywords">
    <input type="submit" name="search" value="cerca">
    </form>
    <hr>

    <?php
    if ($_POST['search']){
    if (!empty($_POST['keywords'])) {
    $searchStr = $_POST['keywords'];
    if (ereg("^[a-zA-Z ]+$", $searchStr)) {

    mysql_connect($host,$user,$password)or die("non riesco a connettermi");
    mysql_select_db($database)or die("non riesco selezionare il database");

    print "Risultati per \"$searchStr\"
    ";
    $keys = explode(" ", $searchStr);

    for ($x = 0; $x < count($keys); $x++) {
    $querystr = "SELECT * FROM idprofilo WHERE titolo = \"$keys[$x]\" OR titolo LIKE \"%$keys[$x]%\"";
    $result = mysql_query($querystr);
    if ($frow = mysql_fetch_array($result)) {
    $found = true;
    do {
    echo "" . $frow["titolo"] . " di ".$frow["catogoria"]."
    ";
    } while ($frow = mysql_fetch_array($result));
    }

    }
    if (!$found) {
    print("Nessun risultato
    ");
    }

    }
    else {
    print("La tua stringa di ricerca contiene caratteri illegali
    ");
    }
    }
    else {
    print("Devi entrare un stringa di ricerca
    ");
    }
    }
    ?>

    </body>
    </html>
    Sumopower

  2. #2
    Il codice che hai postato va bene ma se non ho capito male tu sei all'inizio della programmazione PHP.

    Se vuoi un consiglio cerca di usare il meno possibile script già pronti o se li usi assicurati di sapere tutto ciò che fanno.

    Per il tuo problema secondo me potresti risolvere scrivendoti tu on piccolo script PHP che ti fa da motore di ricerca.

    Io ti consiglio di andare per gradi :
    1) creare un Form di ricerca con i capi che ti servono.
    2) creare la query tramite LIKE (Vedi il manuale SQL per capire come si fa una LIKE)
    3) Stampa i risultati a video

    4) Ricordati che se metti 2 campi di ricerca devi gestire 4 situazioni :
    4.1) Il primo campo pieno e l'altro vuoto
    4.2) Il secondo pieno e il primo vuoto
    4.3) Entrambi pieni
    4.4) Entrambi vuoti

    5) Se metti 3 campi di ricerca devi gestire 9 situazioni ... ecc ...


    Prova a scrivere il codice e se ti incarti ci siamo noi che ti diamo una mano
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  3. #3
    Grazie per la risposta barman. In effetti io sono all'inizio con il php e ho cercato uno script già fatto più che altro per questioni di tempo... Seguendo il tuo consiglio invece al punto 1 dovrei creare un semplice form html che invia la parola o le parole che cerco ad una pagina php che farà da motore di ricerca?
    Sumopower

  4. #4
    Se posso permettermi un consiglio (specialmente all'inizio) ci metti metti tempo a scrivere un codice tu (anche molto semplice) che a configurare uno già pronto.

    Tornando a noi :

    si devi creare un form HTML ---> tramite POST --- > invii la parola o le parole alla stessa pagina o a pagina differente ---> Vai una query con LIKE della parola sul tuo DB e stampi il risultato a video.
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  5. #5
    Ecco un esempio :

    FORM HTML
    Codice PHP:

    <form action="Cerca.php" method="post">

        <
    input name="cerca" type="text">

        <
    input name="" type="submit" value="Cerca">

    </
    form
    Pagina Cerca.php

    Codice PHP:

    <?php



    include("condb.php");
      
    // pagina che contiene lo script per la connessione al db



    $cerca=$_POST['cerca'];

    $query"SELECT  * FROM nome_tabella WHERE nome_campo LIKE('%$cerca%')"

    $select=mysql_query($query) or die("Query fallita
    "
    .mysql_error()."

    "
    .$query);

            

            

    while(
    $row mysql_fetch_array($select))

        {

            echo 
    "    
    "
    ;
      
    // QUI DEVI INSERIRE COME DEVE APPARIRE IL RISULTATO                

        
    }

                

                

    ?>
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  6. #6
    Se ti dico che mi appare una pagina bianca dopo aver inserito il nome e aver permoto invio cosa mi dici?

  7. #7
    se hai lascito il codice seguente come lo ho scritto io è giusto

    Codice PHP:

     
    echo "    
    "
    ;
      
    // QUI DEVI INSERIRE COME DEVE APPARIRE IL RISULTATO 
    perché dentro le virgolette non c'è scritto nulla

    Prova così
    Codice PHP:
    include("condb.php");
      
    // pagina che contiene lo script per la connessione al db



    $cerca=$_POST['cerca'];

    $query"SELECT  * FROM nome_tabella WHERE nome_campo LIKE('%$cerca%')";

    $select=mysql_query($query) or die("Query fallita
    "
    .mysql_error()."

    "
    .$query);

            

            

    while(
    $row mysql_fetch_array($select))

        {

            echo 
    " Ecco il risultato :    ".$row['nome_campo_che_vuoi_visualizzare'];          

        }

                

                

    ?> 
    Ori ti apparirà la scritta

    Ecco il risultato: [ contenuto del campo visualizzato]
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  8. #8
    esce ancora bianco guarda prova a scrivere ale LINK

  9. #9
    ok prova a postare il codice del form HTML e quello della pagina ricerca2.php
    3/6/2003 è morto l'angelo della mia vita..
    www.markwebinformatica.net
    My BLOG

  10. #10
    sono quelli che hai postato tu sopra...cmq:

    form.html
    Codice PHP:
    <form action="ricerca2.php" method="post">
        <
    input name="cerca" type="text">
        <
    input name="" type="submit" value="Cerca">
    </
    form
    ricerca2.php
    Codice PHP:
    <?php
    include("config.ini.php");
      
    // pagina che contiene lo script per la connessione al db
    $cerca=$_POST['cerca'];
    $query"SELECT  * FROM utenti WHERE nome LIKE('%$cerca%')";
    $select=mysql_query($query) or die("Query fallita
    "
    .mysql_error()."

    "
    .$query);    
        while(
    $row mysql_fetch_array($select))
        {
             echo 
    " Ecco il risultato :    ".$row['nome_campo_che_vuoi_visualizzare'];  
        }       
    ?>
    io ci ho lavorato un pò e secondo me dovrebbe venire qualcosa simile
    Codice PHP:
    <?
    include("config.inc.php");
    top();
    //conesisone al database
    $db mysql_connect($db_host$db_user$db_password);

    if (
    $db == FALSE)
      die (
    "Errore cerca amico 001. Contattare l'amministratore");

    mysql_select_db($db_name$db) or die ("Errore cerca amico 002. Contattare l'amministratore");

    $keys explode (","$chiave);

    //query nel database
    $query "SELECT * FROM utenti WHERE";
    reset ($keys);

    foreach (
    $keys as $parola)
    {
    //confornta
      
    $parola trim($parola);
      if (
    $parola != "")
        
    $query .= "nome LIKE '%$parola%'";
    }
    $query .= "0";
    //mostra i risultati
    $result mysql_query($query$db);

    while (
    $row mysql_fetch_array($result))
    {
          
         echo 
    "$row['nome']"</a>
    ";
    }
    foot();:
    ?>

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.