[Generale] domanda php 2

Iacopo iakko a omnikron.net
Ven 27 Ago 2010 17:00:42 BST


> $autore=@mysql_query("SELECT 'username' FROM autore WHERE id='$idautore'");
> echo "Autore: ".$autore;

Non e' cosi' lineare il recupero dei dati da una query sql impartita
tramite php.

Se guardi la guida del php [1] noterai che la funzione mysql_query()
restituisce un "result" che non e' un testo da stampare. Cio' che ti
restituisce e' un oggetto che devi utilizzare successivamente per
recuperare le informazioni che ti servono. Supponi per esempio che la
tua query restituisca piu' righe, magari ognuna delle quali composta
da piu' campi.. come potresti fare?

Per questo motivo, devi utilizzare il risultato di mysql_query() con
mysql_fetch_assoc() [2] che non fa altro che prenderti in pasto il
risultato di mysql_query() e restituirti un array contenente i vari
campi della query, indicizzati proprio dal nome della colonna che hai
specificato nella query.
In pratica, mysql_query() non fa altro che fornirti una sorta di
puntatore a tutte le righe restituite dalla query, poi con
mysql_fetch_assoc() scorri queste righe e le utilizzi come fossero
array. Se la query non e' valida o non ci sono righe, il risultato lo
tratti come fosse un FALSE.

Per farti un esempio:

$result = mysql_query("SELECT username, password FROM autore WHERE
id='$idautore'");

while($row = mysql_fetch_assoc($result))
{
    echo $row['username'];
    echo $row['password'];
}

Nella query che hai scritto, il campo username non va tra apici.

Ciao.

[1]: http://www.php.net/manual/en/function.mysql-query.php
[2]: http://www.php.net/manual/en/function.mysql-fetch-assoc.php

-- 
Iacopo Palazzi


Maggiori informazioni sulla lista Generale