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($resultMYSQL_ASSOC))
{
$regista $row["Regista"];
$film $row["Titolo"];
echo 
"<tr>";
echo 
"<td>$regista</td>";
echo 
"<td>$film</td>";
echo 
"</tr>";
}
echo 
"</table>";
mysql_close($connection);
}
?>