PDA

View Full Version : far eseguire query sql a php...


fifth
24-11-2006, 16:42
Ciao a tutti. Mi sono creato due tabelle in sql(domande e risposte); vorrei che php mi restituisse quante domande identificate dall'intero 1 hanno come risposta 4....
ho scritto questo codice:

/*****************************************************/

<?php
$dbconn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die("can't connect to db server");

mysql_select_db(DB_NAME) or die ("Can't open db");

$query = "select count(*) from risposte where domanda_id=1 && risposta_id=4";
$ans = mysql_query($query) or die("Error executing query");
/* in base alla mia tabella $ans deve restituire 2 */
echo"domanda 1 risposta 4: $ans";

mysql_free_result($ans);
mysql_close($dbconn);
?>

/*****************************************************/

il problema è che alla fine, invece di restituirmi

"domanda 1 risposta 4: 2"

(valore giusto - in MySQL la stessa identica interrogazione funziona)

mi scrive "domanda 1 risposta 4: Resource id #3"

Come mai?!?!?!?

andbin
24-11-2006, 17:10
mi scrive "domanda 1 risposta 4: Resource id #3"

Come mai?!?!?!?Perché quel $ans contiene l'identificativo di un "result set". In pratica un oggetto che rappresenta un insieme di righe.

Devi passare questo identificativo ad altre funzioni tipo mysql_fetch_array o mysql_fetch_row, ecc... per "fetchare" (prelevare) la/le righe che sono state restituite dalla query.

fifth
24-11-2006, 18:34
sotto la riga di $ans ho aggiunto

$row = mysql_fetch_row($ans);
echo"domanda 1 risposta 4:$row";

ma mi scrive "Array"

...


ps c'è da qualche parte un elenco di tutte queste funzioni e una guida su come usarle?

andbin
24-11-2006, 20:12
sotto la riga di $ans ho aggiunto

$row = mysql_fetch_row($ans);
echo"domanda 1 risposta 4:$row";

ma mi scrive "Array"Per prima cosa devi testare se $ans è diverso da FALSE (che indica query fallita). Poi bisogna vedere quante righe ti aspetti che la query restituisca. Se le righe possono essere N, bisogna fare un loop, altrimenti basta leggere una riga soltanto.

Io ti faccio l'esempio più generico:
$result = mysql_query (.......);

if ($result)
{
while ($row = mysql_fetch_row ($result))
{
// qui usi $row[0], $row[1], ....
}
}
ps c'è da qualche parte un elenco di tutte queste funzioni e una guida su come usarle?La documentazione la trovi online e la puoi anche scaricare da www.php.net.

fifth
25-11-2006, 07:54
Grazie mille!!! funziona :)