Ciao a tutti,
sto seguendo questa guida: http://php.html.it/guide/leggi/77/guida-phpmysql-pratica/ e sono arrivato alla lezione 12.
Praticamente ho creato una serie di pagine per la consultazione, modifica e inserimento di notizie con tanto di creazione del DB, interrogazione etc.
Ora mi sto provando il funzionamento di tutte le pagine perchè alcune cose non le ho fatte paro-paro alla guida ma ho fatto qualche modifica rivedendo l'organizzazione dello script e facendo qualche piccola aggiunta, tanto per provare.
Ora sono nella fase di verifica del funzionamento di tutto il sistema ma già alla prima pagina (index.php) ho incontrato diversi problemi.
Alcuni li ho già risolti da solo, ma questo non riesco perchè non capisco il comportamento anomalo di mysql_query().
Ecco lo script (come vedrete sono pedante con i commenti e lo stile di scrittura ma lo faccio apposta per stamparmi bene in mente i concetti):
<?php
/* Inclusioni */
include("assets/includes/config.php");
include("assets/includes/top_foot.php");
/* Head html */
top();
// Connesione al DB
include("assets/includes/db_connection.php");
// Visualizzazione dei primi 5 articoli
// creazione query
$query = "SELECT id, data, titolo FROM news ORDER BY data DESC LIMIT 0,5";
// esecuzione query
$result = mysql_query($query, $db);
?>
<ul>
<?php
// selezione nel DB dei record di $result e visualizzazione
while ($row = mysql_fetch_array($result))
{
$data = date("j/n/y", $row[data]);
echo("[*]<a href=\"view.php?id=$row[id]\">$row[titolo]
<span>$data</span></a>");
}
?>
[/list]
<?php
/* Footer html */
foot();
?>
Il problema si verifica alla riga "$result = mysql_query($query, $db);".
Tra le prove che ho fatto per cercare di capire il problema ho provato a stampare il tipo di dato contenuto in $result con "echo(gettype($result));" e infatti, invece che restituirmi "resource" (come mi pare di aver capito che avrebbe dovuto fare leggendo il manuale di PHP) mi restituisce "boolean".
Infatti eseguendo lo script PHP restituisce il seguente errore (la grassettatura è mia):
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\Web\Sites\TEST_notizie\index.php on line 21
Da quello che ho capito io consultando il manuale di PHP però la funzione "mysql_query();" dovrebbe restituire un dato di tipo "resource" e non "boolean"...
La mysql_query() nel mio script, come potete vedere, ha come parametro della query $query che è una stringa (visibile nello script riportato), e come parametro della connessione $db. $db viene definito nell'inclusione "db_connection.php".
Per quale motivo quindi ricevo il suddetto errore?
Grazie.