PDA

Visualizza versione completa : DATABASE - IL FORM DI RICERCA NON FUNZIONA


MasterJumper
18-03-2009, 02.06.33
Ho iniziato da poco a lavorare con i database relazionali usando PHP 5.2.1 , MYSQL 5.0 , Apache 2.2 .

Su Google ho trovato alcuni esempi interessanti e devo dire che l'inserimento dei dati nel database tramite pagine .php e il loro recupero va a buon fine SE PERO' CERCO DI USARE UN FORM DI RICERCA RICEVO COME RISULTATO SOLO UNA PAGINA VUOTA ! .
Ho allegato il zip contenente i file d'esempio .
Personalmente sto indagando sul file result.php che dopo l'inserimento dei dati nel form collegandosi
a view.php dovrebbe far apparire a video i risultati , ma come ho già detto questo non avviene .

Inserendo all'inizio di result.php :


mysql_error();
error_reporting(E_ALL);

viene notificato il seguente errore : Undefined variable : chiave ... ecc ...

Ma può essere normale ricevere questo genere di avviso se le variabili non vengono inizializzate prima dell'uso .

Adesso però mi chiedo non sarà che devo abilitare o decommentare qualcosa per esempio nei file php.ini
o httpd.conf per poter utilizzare la funzione di ricerca con un form ?

Ringrazio anticipatamente per un eventuale risposta


RESULT.PHP

<?
error_reporting(E_ALL);
include("top_foot.inc.php");
include("config.inc.php");
top();
$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.inc.php");
$keys = explode (",", $chiave);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if ($parola != "")
$query .= "titolo LIKE '%$parola%' OR testo LIKE '%$parola%' OR autore LIKE '%$parola%' OR";
}
$query .= "0";
$query = "SELECT id, titolo, data FROM news 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><br>";
}
mysql_close($db);
foot();
?>

VIEW.PHP

<?
include("top_foot.inc.php");
include("config.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password);
$id=$_GET['id'];
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.inc.php");
$query = "SELECT titolo, testo, data, autore, mail FROM news WHERE id='$id'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$data = date("j/n/y", $row[data]);
echo "<b>$row[titolo]</b><br><br>";
echo "$row[testo]<br><br>";
if ($row[mail] != "")
echo "$data, <a href=mailto:$row[mail]>$row[autore]</a><br>";
else
echo "$data, $row[autore]<br>";
echo "<br><a href=index.php>Torna alla pagina iniziale</a><br>";
echo "<a href=all.php>Visualizza tutti gli articoli</a><br>";
mysql_close($db);
foot();
?>


:mm:

MasterJumper
18-03-2009, 22.32.35
Il problema è stato risolto !!


Grazie lo stesso :jump: :jump: :jump:

miciomao
19-03-2009, 09.36.33
Come?

MasterJumper
20-03-2009, 23.33.12
Così :


<?php
include("top_foot.inc.php");
include("config.inc.php");
error_reporting(E_ALL);
$chiave=$_REQUEST['chiave'];
top();
$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.inc.php");
$keys = explode (",", $chiave);
$query = "";
reset ($keys);
while (list(,$parola) = each ($keys))
{ $parola = trim($parola);
if ($parola != "")
$query .= "titolo LIKE '%$parola%' OR testo LIKE '%$parola%' OR autore LIKE '%$parola%' OR ";
}
$query .= " 0";
$query = "SELECT id, titolo, data FROM news 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><br>";
}
mysql_close($db);
foot();
?>

Saluti

:jump: :jump: :jump: :jump: :jump: :jump: