Problème de récupération d'une donnée Php
Résolu/Fermé
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
-
18 juin 2013 à 14:26
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 19 juin 2013 à 14:24
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 19 juin 2013 à 14:24
A voir également:
- Problème de récupération d'une donnée Php
- Easy php - Télécharger - Divers Web & Internet
- Convertisseur récupération de texte - Guide
- Récupérer une vidéo youtube - Guide
- Recuperation de données - Guide
- Impossible de récupérer mon compte gmail - Guide
18 réponses
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 15:22
18 juin 2013 à 15:22
Salut :
N'utilise pas le * dans le select.
Ensuite tu executes deux fois ta requete :
//On execute la requête
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//$result prend les valeurs de la requete
$result=mysql_query($sql);
Pour finir, voici une structure de requete qui devrait te servir :
Select a.nom, a.prenom, b.ville
From habitant a, ville b
Where a.id_ville = b.id
N'utilise pas le * dans le select.
Ensuite tu executes deux fois ta requete :
//On execute la requête
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
//$result prend les valeurs de la requete
$result=mysql_query($sql);
Pour finir, voici une structure de requete qui devrait te servir :
Select a.nom, a.prenom, b.ville
From habitant a, ville b
Where a.id_ville = b.id
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
18 juin 2013 à 16:09
18 juin 2013 à 16:09
J'ai modifier ma requête par :
$sql = "SELECT a.NOM, a.PRENOM, a.IDSALARIE, b.IDSALARIE, b.HEUREDEBUT, b.HEUREFIN, b.DATERES, b.IDOBJET, c.LIBELLE, c.IDOBJET, c.IDTYPEOBJET D.LIBELLE FROM salarie a, reservation b, objet c, motif d
WHERE b.DATERES=$an$moi$jour && b.IDOBJET=c.IDOBJET && b.IDSALARIE=a.IDSALARIE && c.IDTYPEOBJET=2
ORDER BY b.HEUREDEB ASC";
et l'affichage par :
echo "<tr>\n<td class=\"salle\">".$ligne['c.LIBELLE']."</td>\n<td class=\"salarie\">".$ligne['NOM']." ".$ligne['PRENOM']."\n</td>\n<td>".$ligne['d.LIBELLE']."</td>\n<td class=\"heurer\">".$ligne['HEUREDEB']."</td>\n<td class=\"heurer\">".$ligne['HEUREFIN']."</td></tr>";
or cela ne fonctionne pas :/
$sql = "SELECT a.NOM, a.PRENOM, a.IDSALARIE, b.IDSALARIE, b.HEUREDEBUT, b.HEUREFIN, b.DATERES, b.IDOBJET, c.LIBELLE, c.IDOBJET, c.IDTYPEOBJET D.LIBELLE FROM salarie a, reservation b, objet c, motif d
WHERE b.DATERES=$an$moi$jour && b.IDOBJET=c.IDOBJET && b.IDSALARIE=a.IDSALARIE && c.IDTYPEOBJET=2
ORDER BY b.HEUREDEB ASC";
et l'affichage par :
echo "<tr>\n<td class=\"salle\">".$ligne['c.LIBELLE']."</td>\n<td class=\"salarie\">".$ligne['NOM']." ".$ligne['PRENOM']."\n</td>\n<td>".$ligne['d.LIBELLE']."</td>\n<td class=\"heurer\">".$ligne['HEUREDEB']."</td>\n<td class=\"heurer\">".$ligne['HEUREFIN']."</td></tr>";
or cela ne fonctionne pas :/
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 16:13
18 juin 2013 à 16:13
Attention :
Quand tu déclares plusieurs table dans le FROM, il faut que chacune des tables soient "liées"
C'est à dire que dans ton where, il faut précisé les jointures.
Je reprend mon exemple :
Select a.nom, a.prenom, b.ville
From habitant a, ville b
Where a.id_ville = b.id
Quand tu déclares plusieurs table dans le FROM, il faut que chacune des tables soient "liées"
C'est à dire que dans ton where, il faut précisé les jointures.
Je reprend mon exemple :
Select a.nom, a.prenom, b.ville
From habitant a, ville b
Where a.id_ville = b.id
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
18 juin 2013 à 16:28
18 juin 2013 à 16:28
$sql = "SELECT a.NOM, a.PRENOM, a.IDSALARIE, b.IDSALARIE, b.HEUREDEBUT, b.HEUREFIN, b.DATERES, b.IDOBJET, b.IDMOTIF, c.LIBELLE, c.IDOBJET, c.IDTYPEOBJET, d.IDMOTIF, d.LIBELLE D.LIBELLE FROM salarie a, reservation b, objet c, motif d
WHERE b.DATERES=$an$moi$jour && b.IDOBJET=c.IDOBJET && b.IDSALARIE=a.IDSALARIE && c.IDTYPEOBJET=2 && b.IDMOTIF=d.IDMOTIF
ORDER BY b.HEUREDEB ASC";
le problème est que je ne vois pas quelle table n'est pas lié . Ou alors je comprend mal :/
WHERE b.DATERES=$an$moi$jour && b.IDOBJET=c.IDOBJET && b.IDSALARIE=a.IDSALARIE && c.IDTYPEOBJET=2 && b.IDMOTIF=d.IDMOTIF
ORDER BY b.HEUREDEB ASC";
le problème est que je ne vois pas quelle table n'est pas lié . Ou alors je comprend mal :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 16:38
18 juin 2013 à 16:38
Ok a priori c'est correct.
Ce qui me gène c'est les &&, essaye avec des AND
Et puis est-ce que tu as une erreur ? Le die n'affiche rien ?
Ensuite, essaye :
while ($ligne=mysql_fetch_array($result)){
print_r($ligne);
}
Et copie colle le résultat :)
Ce qui me gène c'est les &&, essaye avec des AND
Et puis est-ce que tu as une erreur ? Le die n'affiche rien ?
Ensuite, essaye :
while ($ligne=mysql_fetch_array($result)){
print_r($ligne);
}
Et copie colle le résultat :)
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
18 juin 2013 à 16:54
18 juin 2013 à 16:54
Oui j'ai une erreure d'afficher :
Erreur SQL !SELECT a.NOM, a.PRENOM, a.IDSALARIE, b.IDSALARIE, b.HEUREDEBUT, b.HEUREFIN, b.DATERES, b.IDOBJET, b.IDMOTIF, c.LIBELLE, c.IDOBJET, c.IDTYPEOBJET, d.IDMOTIF, d.LIBELLE D.LIBELLE FROM salarie a, reservation b, objet c, motif d WHERE b.DATERES=20130605 AND b.IDOBJET=c.IDOBJET AND b.IDSALARIE=a.IDSALARIE AND c.IDTYPEOBJET=2 AND b.IDMOTIF=d.IDMOTIF ORDER BY b.HEUREDEB ASC
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.LIBELLE FROM salarie a, reservation b, objet c, motif d WHERE b.DATERE' at line 1
Ensuite si je rajoute :
while ($ligne=mysql_fetch_array($result)){
print_r($ligne);
}
il ne m'affiche rien. (J'ai ajouté le while que tu m'a donné après mon while)
Erreur SQL !SELECT a.NOM, a.PRENOM, a.IDSALARIE, b.IDSALARIE, b.HEUREDEBUT, b.HEUREFIN, b.DATERES, b.IDOBJET, b.IDMOTIF, c.LIBELLE, c.IDOBJET, c.IDTYPEOBJET, d.IDMOTIF, d.LIBELLE D.LIBELLE FROM salarie a, reservation b, objet c, motif d WHERE b.DATERES=20130605 AND b.IDOBJET=c.IDOBJET AND b.IDSALARIE=a.IDSALARIE AND c.IDTYPEOBJET=2 AND b.IDMOTIF=d.IDMOTIF ORDER BY b.HEUREDEB ASC
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.LIBELLE FROM salarie a, reservation b, objet c, motif d WHERE b.DATERE' at line 1
Ensuite si je rajoute :
while ($ligne=mysql_fetch_array($result)){
print_r($ligne);
}
il ne m'affiche rien. (J'ai ajouté le while que tu m'a donné après mon while)
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 16:58
18 juin 2013 à 16:58
Ah bah si ya une erreur fallait le dire plus tot ;-)
[...] d.IDMOTIF, d.LIBELLE D.LIBELLE FROM salarie a, [...]
Laisse le print_r dans le while
[...] d.IDMOTIF, d.LIBELLE D.LIBELLE FROM salarie a, [...]
Laisse le print_r dans le while
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
18 juin 2013 à 17:00
18 juin 2013 à 17:00
Erreure suivante :
Erreur SQL !SELECT a.NOM, a.PRENOM, a.IDSALARIE, b.IDSALARIE, b.HEUREDEBUT, b.HEUREFIN, b.DATERES, b.IDOBJET, b.IDMOTIF, c.LIBELLE, c.IDOBJET, c.IDTYPEOBJET, d.IDMOTIF, d.LIBELLE FROM salarie a, reservation b, objet c, motif d WHERE b.DATERES=20130605 AND b.IDOBJET=c.IDOBJET AND b.IDSALARIE=a.IDSALARIE AND c.IDTYPEOBJET=2 AND b.IDMOTIF=d.IDMOTIF ORDER BY b.HEUREDEB ASC
Unknown column 'b.HEUREDEBUT' in 'field list'
Erreur SQL !SELECT a.NOM, a.PRENOM, a.IDSALARIE, b.IDSALARIE, b.HEUREDEBUT, b.HEUREFIN, b.DATERES, b.IDOBJET, b.IDMOTIF, c.LIBELLE, c.IDOBJET, c.IDTYPEOBJET, d.IDMOTIF, d.LIBELLE FROM salarie a, reservation b, objet c, motif d WHERE b.DATERES=20130605 AND b.IDOBJET=c.IDOBJET AND b.IDSALARIE=a.IDSALARIE AND c.IDTYPEOBJET=2 AND b.IDMOTIF=d.IDMOTIF ORDER BY b.HEUREDEB ASC
Unknown column 'b.HEUREDEBUT' in 'field list'
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 17:12
18 juin 2013 à 17:12
L'erreur est assez explicite non ?
Il ne trouve pas heuredébut dans ta table réservation
Vérifie l'arthographe
Il ne trouve pas heuredébut dans ta table réservation
Vérifie l'arthographe
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
Modifié par shishi1906 le 18/06/2013 à 17:16
Modifié par shishi1906 le 18/06/2013 à 17:16
Alors il ne m'affiche plus d'erreur c'est un bon début, cela étant dit il ne m'affiche rien du tout.
affichage :
while ($ligne=mysql_fetch_array($result)){
echo "<tr>\n<td class=\"salle\">".$ligne['c.LIBELLE']."</td>\n<td class=\"salarie\">".$ligne['a.NOM']." ".$ligne['a.PRENOM']."\n</td>\n<td>".$ligne['d.LIBELLE']."</td>\n<td class=\"heurer\">".$ligne['b.HEUREDEB']."</td>\n<td class=\"heurer\">".$ligne['b.HEUREFIN']."</td></tr>";
print_r($ligne);
}
affichage :
while ($ligne=mysql_fetch_array($result)){
echo "<tr>\n<td class=\"salle\">".$ligne['c.LIBELLE']."</td>\n<td class=\"salarie\">".$ligne['a.NOM']." ".$ligne['a.PRENOM']."\n</td>\n<td>".$ligne['d.LIBELLE']."</td>\n<td class=\"heurer\">".$ligne['b.HEUREDEB']."</td>\n<td class=\"heurer\">".$ligne['b.HEUREFIN']."</td></tr>";
print_r($ligne);
}
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 17:25
18 juin 2013 à 17:25
Met juste :
affichage :
while ($ligne=mysql_fetch_array($result)){
echo "<tr><td>";
print_r($ligne);
echo "</td></tr>";
}
Si tu n'as rien à l'affichage, c'est que ta requete ne trouve rien
affichage :
while ($ligne=mysql_fetch_array($result)){
echo "<tr><td>";
print_r($ligne);
echo "</td></tr>";
}
Si tu n'as rien à l'affichage, c'est que ta requete ne trouve rien
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
18 juin 2013 à 17:28
18 juin 2013 à 17:28
Donc ma requete ne trouve, il faut maintenant que je trouve pourquoi.
(Pfiou la programmation c'est cool, mais ça peut vite donner des mal de crane)
(Pfiou la programmation c'est cool, mais ça peut vite donner des mal de crane)
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 17:35
18 juin 2013 à 17:35
Si tu as phpmyadmin, il y a un espace pour faire des requetes. Vas y et tape ta requete dedans. Tu peux faire tes test dedans pour voir quelle requete te trouce ce que tu souhaites
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
18 juin 2013 à 17:39
18 juin 2013 à 17:39
Alors c'est bon dans mon print_r j'ai :
Array ( [0] => Alves [NOM] => Alves [1] => Magali [PRENOM] => Magali [2] => 4 [IDSALARIE] => 4 [3] => 4 [4] => 00:15:00 [HEUREDEB] => 00:15:00 [5] => 02:45:00 [HEUREFIN] => 02:45:00 [6] => 2013-01-02 [DATERES] => 2013-01-02 [7] => 4 [IDOBJET] => 4 [8] => 5 [IDMOTIF] => 5 [9] => Salle de test 2 [LIBELLE] => Danse [10] => 4 [11] => 2 [IDTYPEOBJET] => 2 [12] => 5 [13] => Danse )
Mais je n'ai rien dans les case de mon tableau, simplement des case avec le fond, mais sans les écritures à l'intérieure.
Array ( [0] => Alves [NOM] => Alves [1] => Magali [PRENOM] => Magali [2] => 4 [IDSALARIE] => 4 [3] => 4 [4] => 00:15:00 [HEUREDEB] => 00:15:00 [5] => 02:45:00 [HEUREFIN] => 02:45:00 [6] => 2013-01-02 [DATERES] => 2013-01-02 [7] => 4 [IDOBJET] => 4 [8] => 5 [IDMOTIF] => 5 [9] => Salle de test 2 [LIBELLE] => Danse [10] => 4 [11] => 2 [IDTYPEOBJET] => 2 [12] => 5 [13] => Danse )
Mais je n'ai rien dans les case de mon tableau, simplement des case avec le fond, mais sans les écritures à l'intérieure.
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 17:48
18 juin 2013 à 17:48
Bah tu peux remplir ton tableau avec les infos, tu les as dans $ligne qui correspond au contenu du print_r ;-)
Donc si tu veux mettre Alves, c'est echo $ligne['NOM'] ou $ligne[0] ;-)
Donc si tu veux mettre Alves, c'est echo $ligne['NOM'] ou $ligne[0] ;-)
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
18 juin 2013 à 17:49
18 juin 2013 à 17:49
Ha et pour le libelle de ma salle je met $ligne[9] et cela fonctionnera quelque soit la salle ?
mahdu972
Messages postés
229
Date d'inscription
jeudi 14 juin 2012
Statut
Membre
Dernière intervention
3 août 2014
18
18 juin 2013 à 17:52
18 juin 2013 à 17:52
$Ligne['SALLE'] est plus prudent parce qu'en cas de modification du tableau, la ligne 9 ne correspondra plus aux salles..
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
Modifié par shishi1906 le 18/06/2013 à 17:56
Modifié par shishi1906 le 18/06/2013 à 17:56
oui mais dans ce que je recoit, le nom de m'a salle m'est donné simplement par [9] et jamais par ['SALLE'].
Le nom dans ma table est LIBELLE, c'est le même que pour les motif (LIBELLE) ....
(A demain je débauche, j'espere résoudre ce soucis demain)
Le nom dans ma table est LIBELLE, c'est le même que pour les motif (LIBELLE) ....
(A demain je débauche, j'espere résoudre ce soucis demain)
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
18 juin 2013 à 17:56
18 juin 2013 à 17:56
D'ailleurs il y a des colonnes qui n'ont pas noms, essaye de mettre des AS ;-)
select a.nom as NOM, a.prenom as PRENOM, b.ville as VILLE
Car tu vois tes colonnes 10 12 et 13 n'ont pas nom, donc tu ne peux seulement y accéder par leur numéro
select a.nom as NOM, a.prenom as PRENOM, b.ville as VILLE
Car tu vois tes colonnes 10 12 et 13 n'ont pas nom, donc tu ne peux seulement y accéder par leur numéro
shishi1906
Messages postés
93
Date d'inscription
mercredi 1 mai 2013
Statut
Membre
Dernière intervention
27 mars 2014
19 juin 2013 à 11:08
19 juin 2013 à 11:08
Merci encore de ton aide jérémy.s encore un sujet de résolu!
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
19 juin 2013 à 14:24
19 juin 2013 à 14:24
Derien :)