Originariamente inviato da Alhazred
Sei sicuro che la SELECT trovi qualcosa?
Anche se la query non fornisce risultati non significa che mysql_fetch_array ha un argomento invalido.
Il problema è diverso... tu crei la funzione query_db() che non viene mai richiamata!!
Inoltre una variabile presene all'interno di una funzione non esiste al di fuori di essa. Esempio:
Codice PHP:
<?php
function ciao()
{
$var = 'ciao';
}
ciao();
echo $var; // questa variabile non esiste!!!
?>
Nel tuo caso la variabile $result è valorizzata all'interno della funzione query_db() e poi la richiami nella funzione mysql_fetch_array() che sta fuori la funzione query_db()!!!
Il tuo per essere uno script di uno che inizia da una settimana a studiare lo trovo troppo complicato.
Cmq... dandogli uno sguardo superficiale credo che basti spostare la chiusura di una graffa ma deve essere testato...
Codice PHP:
<?php
function query_db($search)
{
include_once('db_login.php');
$connection = mysql_connect($db_host,$db_username,$db_password);
if(!$connection) die ("Impossibile connettersi al db " . mysql_error());
// seleziono il db
$db_select = mysql_select_db($db_database);
if(!$db_select) die ("Impossibile connettersi al db " . mysql_error());
//query
if(get_magic_quotes_gpc())
$search = stripslashes($search);
$search = mysql_real_escape_string($search);
$query = "SELECT * from Film where titolo LIKE '%$search%'"; // where Titolo LIKE '%$search%'";
$result = mysql_query($query);
if(!$result)
die ("Errore " . mysql_error());
// qui c'era la graffa che ho tolto
echo ("<table>");
echo "<tr><th>Titolo</th><th>Regista</th></tr>";
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$regista = $row["Regista"];
$film = $row["Titolo"];
echo "<tr>";
echo "<td>$regista</td>";
echo "<td>$film</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($connection);
}
?>