Problème de récupération d'une donnée Php
Résolu
shishi1906
Messages postés
93
Date d'inscription
Statut
Membre
Dernière intervention
-
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
jeremy.s Messages postés 1226 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà mon soucis, j'ai deux table différentes contenant toutes les deux "LIBELLE". Et j'aimerai afficher à un certain endroit l'un, puis à un certain endroit l'autre or je n'y arrive pas.
Voici mon code :
Comme vous pouvez le voir j'ai essayer en préfixant d'un "." mais cela ne fonctionne pas, quelqu'un aurait-il la solution ?
Voilà mon soucis, j'ai deux table différentes contenant toutes les deux "LIBELLE". Et j'aimerai afficher à un certain endroit l'un, puis à un certain endroit l'autre or je n'y arrive pas.
Voici mon code :
$sql = "SELECT * FROM reservation, objet, salarie, motif WHERE DATERES=$an$moi$jour && reservation.IDOBJET=objet.IDOBJET && reservation.IDSALARIE=salarie.IDSALARIE && IDTYPEOBJET=2 ORDER BY HEUREDEB ASC"; //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); //creation du tableau while ($ligne=mysql_fetch_array($result)){ echo "<tr>\n<td class=\"salle\">".$ligne['objet.LIBELLE']."</td>\n<td class=\"salarie\">".$ligne['NOM']." ".$ligne['PRENOM']."\n</td>\n<td class=\"heurer\">".$ligne['HEUREDEB']."</td>\n<td>".$ligne['motif.LIBELLE'].'</td>\n<td class=\"heurer\">".$ligne['HEUREFIN']."</td></tr>";
Comme vous pouvez le voir j'ai essayer en préfixant d'un "." mais cela ne fonctionne pas, quelqu'un aurait-il la solution ?
A voir également:
- Problème de récupération d'une donnée Php
- Convertisseur récupération de texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment recuperer une video sur youtube - Guide
- Logiciel de récupération de données - Guide
- Recuperer une conversation whatsapp supprimée - Guide
18 réponses
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
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 :/
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
$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
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 :)
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)
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
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'
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
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);
}
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
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)
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
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.
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] ;-)
Ha et pour le libelle de ma salle je met $ligne[9] et cela fonctionnera quelque soit la salle ?