Page 1 sur 1

Syntaxe mysql_fetch_assoc

Posté : 13 juil. 2005, 10:35
par guilt92
Bonjour,

j'ai un probleme qui je pense est tres simple mais je m en sors pas.
J execute une requete et je fais un mysql_fetch_assoc pour la récupérer.

Si j affiche
echo $ligne["name"]
(ce qui est le resultat de ma requete) cela fonctionne sans probleme.

En revanche je tente de mettre ceka dans une liste :
"<OPTION VALUE='ligne[\"name\"]'....> 
et cela ne fonctionne pas...
(ma valeur est entre ' ' car je désire récupérer une chaine de caractère...)

Merci d avance

Re: Syntaxe mysql_fetch_assoc

Posté : 13 juil. 2005, 11:01
par Axel
c'est normal tu as fait quelques erreurs d'écriture:

la première tu as oublié le "$" devant ligne.
Et enfin pour intégrer une variable php dans une chaine de caractère il vaut mieux couper la chaîne avec les points (".") qui sont les caractères pour faire de la concaténation de chaîne, comme ceci:

(je suppose que tu as un "echo" de le "<OPTION")
echo "<OPTION VALUE=' ".$ligne["name"]."'....>" 
tu le vois même avec le code la variable ressort et peut-être lu.
Dans la plupart des cas il faut procéder comme cela.
Il y a des exceptions avec les variables simples où là tu peux les écrire directement sans avoir besoin de les mettre en valeur.
avec ton exemple:
$nom = $ligne["name"];
echo "<OPTION VALUE='$nom'....>" 
Dans ce cas cela marcherait

Voilà, j'espère t'avoir répondu :D

Posté : 13 juil. 2005, 11:09
par zeus
J'aprouve entièrement la remarque d'Axel et j'irais même en peu plus loin en conseilllant d'éviter cette syntaxe
echo "<OPTION VALUE='$nom'....>"
En effet, les tableaux ne sont pas interpreté s'ils sont mélangès dans la chaine de caractère (c'est ton problème).

Or, s'il faut sortir les tableaux des chaines, je conseille de toujours sortir les variables des chaine :
- on prend l'habitude
- c'est plus facile de détecter les variables si on a un editeur avec coloration syntaxique

Donc même dans le cas d'une variable toute simple, je conseille
echo "<OPTION VALUE='".$nom."'....>"

Posté : 13 juil. 2005, 11:12
par guilt92
Merci bcp !

j en profite pour poser une autre question :

prenons la requete suivante :

Code : Tout sélectionner

$rq = "SELECT Weeks, SUM(days) FROM main GROUP BY Weeks"; $result=mysql_query.....; $ligne=mysql_fetch_assoc($result);
A ce moment la dans mon tableau j'ai $ligne["weeks"] pour la premiere colonne mais pour l'autre j ai quoi ??

Merci

Posté : 13 juil. 2005, 12:17
par Axel
ça dépend du contenu de ta colonne days.

En principe SUM() te renvoie la somme du contenu de la colonne

est ce que tu pourrais envoyer un exemple de contenu de ta table "main"

Posté : 13 juil. 2005, 12:45
par raptor
Merci bcp !

j en profite pour poser une autre question :

prenons la requete suivante :

Code : Tout sélectionner

$rq = "SELECT Weeks, SUM(days) FROM main GROUP BY Weeks"; $result=mysql_query.....; $ligne=mysql_fetch_assoc($result);
A ce moment la dans mon tableau j'ai $ligne["weeks"] pour la premiere colonne mais pour l'autre j ai quoi ??

Merci
Hello,

fait comme ceci :

Code : Tout sélectionner

$rq = "SELECT Weeks, SUM(days) as somme FROM main GROUP BY Weeks"; $result=mysql_query.....; $ligne=mysql_fetch_assoc($result);
.

De la sorte, tu pourras recuperer ta somme via $ligne["somme"];

@+

Posté : 13 juil. 2005, 13:43
par guilt92
ok impeccable merci
est ce que tu pourrais envoyer un exemple de contenu de ta table "main"


Du coup c'est pas la peine mais merci quand meme !

:D