Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Ricerca nel DB

  1. #1

    Ricerca nel DB

    Ciao ragazzi rieccomi...

    Ho un problema (come al solito ) devo creare un motore di ricerca, in grado di cercare nella tabella films/campo "titolo" del database...

    ho creato il mio bel form di ricerca
    codice:
    <form method="post" action="s_risultato.php">
    <input type="text" name="chiave"><input type="submit" value="cerca">
    </form>
    nella mia paginetta per cercare e vedere il risultato ho questo:

    codice:
    <?
    include("config.php");
    
    
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.php");
    
    $keys = explode (",", $chiave);
    
    $query = "";
    reset ($keys);
    while (list(,$parola) = each ($keys))
    { $parola = trim($parola);
    if ($parola != "")
    $query .= "titolo LIKE '%$parola%' ";
    }
    $query .= "0";
    
    $query = "SELECT id, titolo, data FROM film WHERE " . $query;
    
    $result = mysql_query($query, $db);
    while ($row = mysql_fetch_array($result))
    { echo "<a href=\"view.php?id=$row[id]\">" . date("j/n/y", $row[data]) . " - $row[titolo]</a>
    "; }
    
    ?>
    purtroppo non funziona mi da questo errore:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ecc. ecc.

    Cosa sbaglio ? :master: :master:
    tutto forse
    AweDesign "power & Creation"
    Tecnical supp:info@awedesign.net
    sito:http://www.awedesign.net

  2. #2
    risolto

    Ho eliminato
    $query .= "0";

    aggiunto la "s" a film !! e ' ' a data e ora tutto funziona !
    AweDesign "power & Creation"
    Tecnical supp:info@awedesign.net
    sito:http://www.awedesign.net

  3. #3
    come posso fare in modo che se la ricerca non porta nessun risultato mi venga visualizzato un messaggio del tipo:

    nel database non è presente nessun film "$parola"

    come posso fare ? :master: con if dopo while ?
    AweDesign "power & Creation"
    Tecnical supp:info@awedesign.net
    sito:http://www.awedesign.net

  4. #4
    Prova così

    Codice PHP:
    $result mysql_query($query$db);
    $num mysql_num_rows($result);
    if (
    $num == 0)
    {
       echo 
    "Nel database non è presente nessun film $parola";
       exit();
    }
    else
    {
    while (
    $row mysql_fetch_array($result))

    ..... 

  5. #5
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    $query = "SELECT id, titolo, data FROM film WHERE " . $query;

    $result = mysql_query($query, $db);

    //aggiungi questo:
    $record = mysql_num_rows($query);
    if($record < 1) {echo "frase";}
    else{

    while ($row = mysql_fetch_array($result))
    { echo "<a href=\"view.php?id=$row[id]\">" . date("j/n/y", $row[data]) . " - $row[titolo]</a>
    "; }
    }

    OPS abbiamo postato insieme

  6. #6
    Si, ma mysql_num_rows va applicata a $result, non a $query, almeno mi pare

  7. #7
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    si ho sbagliato a scrivere

  8. #8
    ragazzi funziona grazie a tutti e due

    Ultimissima cosuccia, nel mio db ho inserito per prova madagascar come titolo...ecco se ricerco una qualsiasi lettera presente nel nome a|s|d oppure scrivo mad mi visualizza lo stesso il film...ecco secondo voi è possibile fare in modo che nel caso non si scrive il nome corretto e per intero la ricerca non va a buon fine ?

    AweDesign "power & Creation"
    Tecnical supp:info@awedesign.net
    sito:http://www.awedesign.net

  9. #9
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    sembra strano , perche se metti where titolo='mad' dovrebbe trovare un record identico, altrimenti come dici tu dovrebbe essere WHERE titolo LIKE '%mad%' (cosi cerca qualsiasi titolo che contiene mad).

  10. #10
    Attualmente c'è il LIKE

    $query .= "titolo LIKE '%$parola%' ";

    Cosa devo mettere per eliminare il problemino ?

    se provo con = non mi visualizza + nulla
    AweDesign "power & Creation"
    Tecnical supp:info@awedesign.net
    sito:http://www.awedesign.net

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.