Affichage WHILE - PHP - Programmation
Marsh Posté le 28-10-2013 à 15:27:16
Bonjour,
</head>
<body>
<?php
$reponse = $bdd->query("SELECT * FROM matable1 m1, matable2 m2 WHERE m1.xxx = "quelque chose" && m2.xxx = "quelque chose"
While ($donnees = $reponse->fetch())
{
?>
<table >
<tr>
<th>echo ($donnees1['XXXX']);?></th>
<th>echo ($donnees1[YYYY']);?></th>
<th>echo ($donnees2['XXXX']);?></th>
<th >echo ($donnees2['YYYY]);?></th>
</tr>
</table>
<?php } ?>
C'est un truc dans le genre. Je t'ai modifier certain terme pour plus que tu fasse d'erreur ( une base est différent d'une table ).
Marsh Posté le 29-10-2013 à 08:14:37
Merci pour ta réponse,
mais les ou la requête SQl n'est pas un problème...faire une requête ou deux dans des tables différentes il y a plusieurs manières de faire mais là n'est pas mon souci.
Je veux tout simplement faire deux WHILE différents et les afficher sur reponse1 & reponse2 de mes requêtes, il est vrais qu'il n'est pas facile d'expliquer clairement les desideratas.
Marsh Posté le 29-10-2013 à 08:38:46
Bonjour,
J'avais bien compris. mais tu ne pourra pas faire en imbriquant deux WHILE car il rentrera dans le premier terme du while puis fera tout les terme du second et ainsi de suite... ( principe algorithmique fondamentale ).
Donc tu doit changer ta requête pour avoir tes information dans une seul variable et donc faire une seule boucle. Ensuite tu n'a plus qu'a tester dans quel ordre les données sont classés et faire ton formatage dans le tableau.
Normalement le code que je t'ai donnée devrait être bon ( vague souvenir, j'ai eu le même soucis )
En espérant t'avoir aidé
Marsh Posté le 29-10-2013 à 10:55:10
j'ai poussé dans la recherche des WHILE...
Donc maintenant
while ($donnees1 = $reponse1->fetch())
while ($donnees2 = $reponse2->fetch())
{
?>
et ça me donne
----------------+----------------+---------------+----------------+
+ table A + table A + table B + table B +
+ A + 1 + A + 1 +
--------------------------------------------------------------------
+ A + 1 + B + 2 +
---------------------------------------------------------------------
+ A + 1 + C + 3 +
---------------------------------------------------------------------
Résultat de la Table A même résultat de la première à la dernière ligne.
Résultat Table B ordre normal avec l'énumération de la table.
Donc ça s'affiche mais sur table A même résultat....
Marsh Posté le 29-10-2013 à 11:09:27
Citation : J'avais bien compris. mais tu ne pourra pas faire en imbriquant deux WHILE car il rentrera dans le premier terme du while puis fera tout les terme du second et ainsi de suite... ( principe algorithmique fondamentale ). |
Je me répète :
Tu entre dans ton premier while : A 1
Tu entre dans ton deuxième while : il parcours tout donc bonne ordre
ensuite tu aura : B 2
Tu entre dans ton deuxième while : bizarre il t'affiche a nouveau A1 puis B2 ect...
C'est de l'algorithme simple....
Donc ton système à deux boucle ne peux pas fonctionner...
Marsh Posté le 29-10-2013 à 11:29:02
Merci pour ta réponse et le coup de main mais,
j'essaye simplement de comprendre pourquoi il affiche la première ligne de la table A en répétition et toute la table B (conforme à la demande).
ça me chiffonne...
Marsh Posté le 28-10-2013 à 11:15:03
Bonjour,
j'ai un petit souci, j'ai établi deux requêtes SQL et suite à ces requêtes je voudrais les afficher dans un tableaux (obligation d'avoir un tableau formaté par un css).
Dans cette requête, mon tableau s'affiche avec les données1 et pas les données2.
J'ai essayé avec un seul WHILE, mais pas succès!
Connexion de la base : PDO
Merci pour votre aide.
// On récupère tout le contenu des tables
$reponse1= $bdd->query("SELECT * FROM mabase1 WHERE xxx " );
$reponse2= $bdd->query("SELECT * FROM mabase2 WHERE xxx" );
// On affiche chaque entrée une à une
while ($donnees1 = $reponse1->fetch())
{
while ($donnees2 = $reponse2->fetch())
{
}
?>
</head>
<body>
<table >
<tr>
<th><?php echo ($donnees1['XXXX']);?></th>
<th><?php echo ($donnees1[YYYY']);?></th>
<th><?php echo ($donnees2['XXXX']);?></th>
<th ><?php echo ($donnees2['YYYY]);?></th>
</tr>
</table>
Message édité par hogz le 28-10-2013 à 13:45:18