2011-07-25 4 views
1

Si je sais que la requête renvoie une seule ligne, et plus specefically, dans ce cas, une valeur,Comment sélectionner une ligne d'une table MySQL?

$full_name = database::query("SELECT concat (fname, ' ', lname) from cr WHERE email='$email'"); 

comment puis-je obtenir cette valeur en une seule variable. Database :: query renvoie le formulaire de valeur mysql_query. La requête ci-dessus insère "Resource ID 4" dans la table mysql.

Credentials(cr)

Tweets(tw)

+4

Jetez un oeil à mysql_fetch_row() –

+2

Quelle classe utilisez-vous? Vous devriez presque certainement utiliser PDO pour accéder à une base de données - http://www.php.net/pdo –

+1

@nick rulez - ne pointez pas Chris dans le sens des méthodes moins sûres –

Répondre

4

Je ne sais pas database::query(), mais mysql_query() ne revient en effet une ressource.

Une fois que vous avez cette ressource, vous devez chercher vos données à partir, en utilisant, par exemple, mysql_fetch_array():

$data = mysql_fetch_array($full_name); 


Notez qu'il existe plusieurs fonctions mysql_fetch_*, selon le type de résultat de votre faute (tableau, objet, ...):

+0

Un tableau, un objet et un tableau associatif, qu'en est-il d'une seule valeur, c'est-à-dire le cas le plus simple? Je continue à voir l'exemple du tableau et je sais que je pourrais l'utiliser mais je continue à penser qu'il y en a un juste pour une seule valeur? –

+0

@Chris Dans tous les cas, vous devez aller chercher la ligne * (et une ligne contient généralement plusieurs valeurs - une étant l'exception) *; ensuite, vous pouvez accéder à chaque donnée * (une, dans votre cas) * qui se trouve dans cette rangée ;;; Si vous voulez voir ce qu'il y a dans '$ data', vous pouvez utiliser' var_dump ($ data); 'pour obtenir un vidage du contenu de cette variable. –

+0

Donc, tous les "grabbs" de la table sont basés sur les lignes? –

1

Je ne suis pas sûr de ce que votre classe de base de données a à offrir, mais en utilisant construit en fonction php mysql, vous pouvez utiliser:

$full_name = database::query("SELECT concat (fname, ' ', lname) 
    from cr WHERE email='$email'"); 
$full_name = mysql_fetch_row($full_name); 
$full_name = $full_name[0]; 
+0

Merci pour l'aide. –

2
$query = mysql_query("SELECT concat (fname, ' ', lname) from cr WHERE email='$email'"); 
$row = mysql_fetch_row($query); 
echo $row[0]; 
Questions connexes