[PHP/MySQL] Une histoire d'array ... :'(
Fermé
sango69780
Messages postés
44
Date d'inscription
vendredi 15 septembre 2006
Statut
Membre
Dernière intervention
2 octobre 2009
-
10 janv. 2008 à 15:19
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009 - 10 janv. 2008 à 17:17
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009 - 10 janv. 2008 à 17:17
A voir également:
- [PHP/MySQL] Une histoire d'array ... :'(
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Rechercher un film par son histoire - Télécharger - Divers TV & Vidéo
- Conn: une histoire de fraude torrent - Accueil - Outils
- Comment changer de véhicule personnel gta 5 mode histoire ✓ - Forum PS3
4 réponses
Bonjour
bysard quel mot bizare !
mysql_query ne rend pas un array ni un champ mais une resource si tout va bien et le booléen false s'il y a un problème, comme il est indiqué dans la doc PHP.
pour extraire ton info de la resource, il faut faire (entre autres possibilités)
bysard quel mot bizare !
mysql_query ne rend pas un array ni un champ mais une resource si tout va bien et le booléen false s'il y a un problème, comme il est indiqué dans la doc PHP.
pour extraire ton info de la resource, il faut faire (entre autres possibilités)
$res = mysql_query (" SELECT theme FROM agricole WHERE idtheme = $donnees"); $ligne= mysql_fetch_array($res); $titre=$ligne['theme'];
sango69780
Messages postés
44
Date d'inscription
vendredi 15 septembre 2006
Statut
Membre
Dernière intervention
2 octobre 2009
10 janv. 2008 à 15:38
10 janv. 2008 à 15:38
Ok niquel ca marche ...
Mais je ne comprend pas :-(
Pourrais-tu mettre un petit commentaire apres chacune des 3 ligne de codes, que je comprenne une fois pour toute le fonctionnement, car j'avoue que là j'ai du mal :S
En tout cas, merci encore de ta gentilesse.
Cordialement.
Mais je ne comprend pas :-(
Pourrais-tu mettre un petit commentaire apres chacune des 3 ligne de codes, que je comprenne une fois pour toute le fonctionnement, car j'avoue que là j'ai du mal :S
En tout cas, merci encore de ta gentilesse.
Cordialement.
Pourrais-tu mettre un petit commentaire apres chacune des 3 ligne de codes ça, c'est la meilleure des questions à poser.
$res = mysql_query (" SELECT theme FROM agricole WHERE idtheme = $donnees");
on fait une requête mysql SELECT. Si tout va bien, $res contiendra un 'truc' qui s'appelle une resource et qu'on utilisera à la 2ème ligne. S'il y a un problème, $res vaudra false. Dans un programme sérieux, on contrôle que le résultat n'est pas false en faisant :
$res = mysql_query (" SELECT theme FROM agricole WHERE idtheme = $donnees") or die (mysql_error());
Remarque : qu'il n'y ait aucun enregistrement avec idtheme = $donnees n'est pas une erreur, mais $res ne contiendra aucun résultat. Par contre, si la table agricole n'existe pas, il y aura bien une erreur.
$ligne= mysql_fetch_array($res);
la resource obtenue peut être considérée comme une sorte de tableau à deux dimensions dont on lit une ligne à chaque fois en faisant $ligne= mysql_fetch_array($res);
chaque ligne de ce tableau à 2 dimensions est un tableau à une dimension dont les éléments ont pour indice les noms des champs récupérés. Si tu avais fait "SELECT idtheme,theme FROM..." tu aurais récupéré dans $ligne un tableau à 2 éléments $ligne['idtheme'] et $ligne['theme'].
Quand tu as balayé tout le tableau $res, mysql_fetch_array($res) te rend false. C'est pour ça qu'on rencontre très souvent la boucle :
while ($ligne= mysql_fetch_array($res)) {
... traitement
}
La condition du while fait à la fois l'appel à la fonction, l'affectation à $ligne (grâce au '=' qui n'est pas un == de comparaison !) et le test de la valeur false.
Remarque que sans faire de boucle, tu peux utiliser mysql_num_rows($res) qui te dit s'il y a 0, 1 ou 25000 résultats à ta requête
$titre=$ligne['theme'];
tu sors tu tableau $ligne une valeur particulière (même si c'est la seule ici !)
$res = mysql_query (" SELECT theme FROM agricole WHERE idtheme = $donnees");
on fait une requête mysql SELECT. Si tout va bien, $res contiendra un 'truc' qui s'appelle une resource et qu'on utilisera à la 2ème ligne. S'il y a un problème, $res vaudra false. Dans un programme sérieux, on contrôle que le résultat n'est pas false en faisant :
$res = mysql_query (" SELECT theme FROM agricole WHERE idtheme = $donnees") or die (mysql_error());
Remarque : qu'il n'y ait aucun enregistrement avec idtheme = $donnees n'est pas une erreur, mais $res ne contiendra aucun résultat. Par contre, si la table agricole n'existe pas, il y aura bien une erreur.
$ligne= mysql_fetch_array($res);
la resource obtenue peut être considérée comme une sorte de tableau à deux dimensions dont on lit une ligne à chaque fois en faisant $ligne= mysql_fetch_array($res);
chaque ligne de ce tableau à 2 dimensions est un tableau à une dimension dont les éléments ont pour indice les noms des champs récupérés. Si tu avais fait "SELECT idtheme,theme FROM..." tu aurais récupéré dans $ligne un tableau à 2 éléments $ligne['idtheme'] et $ligne['theme'].
Quand tu as balayé tout le tableau $res, mysql_fetch_array($res) te rend false. C'est pour ça qu'on rencontre très souvent la boucle :
while ($ligne= mysql_fetch_array($res)) {
... traitement
}
La condition du while fait à la fois l'appel à la fonction, l'affectation à $ligne (grâce au '=' qui n'est pas un == de comparaison !) et le test de la valeur false.
Remarque que sans faire de boucle, tu peux utiliser mysql_num_rows($res) qui te dit s'il y a 0, 1 ou 25000 résultats à ta requête
$titre=$ligne['theme'];
tu sors tu tableau $ligne une valeur particulière (même si c'est la seule ici !)
sango69780
Messages postés
44
Date d'inscription
vendredi 15 septembre 2006
Statut
Membre
Dernière intervention
2 octobre 2009
10 janv. 2008 à 17:17
10 janv. 2008 à 17:17
Ok ok j'ia compris la méthode et la logique !
Je t'en remercie !
Cordialement.
Je t'en remercie !
Cordialement.