Affichage WHILE

Affichage WHILE - PHP - Programmation

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
Reply

Marsh Posté le 28-10-2013 à 11:15:03   

Reply

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 ).
 


---------------
Made you your own sentence without believing that of the others...
Reply

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. :pt1cable:


Message édité par hogz le 29-10-2013 à 08:15:16
Reply

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é


---------------
Made you your own sentence without believing that of the others...
Reply

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.... :lol:


Message édité par hogz le 29-10-2013 à 10:55:50
Reply

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...


---------------
Made you your own sentence without believing that of the others...
Reply

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... :ouch:


Message édité par hogz le 29-10-2013 à 11:29:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed