Boucle While - Afficher enregistrements SQL
Bonjour les amis,
Ceci est mon premier post sur ce forum !!!
Je poste cette discussion car je rencontre un problème sur une boucle qui permettra d'afficher les enregistrements SQL dans un tableau HTML avec une particularité :
En effet, je voudrais afficher le résultat d'une base de données (ça je sais faire) en intercalant quelque chose après chaque enregistrement trouvé (c'est là où je cale depuis un certain temps).
Voici les deux requêtes SQL :
Code:
1 2 3 4
|
$query_selection_auteur= mysql_query("SELECT DISTINCT (t2.nom_auteur) FROM test_site_utilisateur t1, test_site_questions t2 WHERE t1.pseudo_utilisateur='$pseudo_utilisateur' AND t2.password_examen='$password_examen' AND t2.type_devoir='2' AND matiere_cours = '' AND matiere_examen != ''") or die ("Erreur lors de la requête SQL qui permet de récupérer le nom de l'auteur"); // Envoie une requête à un serveur MySQL
$query_selection_questions = mysql_query("SELECT texte_question_examen, date_depot_examen, date_examen, titre_examen,duree_examen,matiere_examen, classe_cours_examen, nom_auteur FROM test_site_utilisateur t1, test_site_questions t2 WHERE t1.pseudo_utilisateur='$pseudo_utilisateur' AND t1.pseudo_utilisateur=t2.nom_auteur AND matiere_cours='' AND matiere_examen!='' AND t2.type_devoir='2'")or die ('Erreur lors de la requête SQL qui permet de récupérer les questions'.mysql_error()); // Envoie une requête à un serveur MySQL |
J'ai vous met la boucle que j'ai faite mais je n'arrive pas à faire comme le premier exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
while($donnees_messages = mysql_fetch_array($query_selection_questions)) {
while ($donnees_examen = mysql_fetch_array($query_selection_auteur)) {
echo $donnees_examen['nom_auteur'];
echo '</div></td><td width="19%"><div class="informations">Date :</div> <div class="informations_recuperees">'.$dateDuJour.'</div></tr>';
echo ' <tr>
<td><div class="titre_examen">'.$donnees_examen['titre_examen'].'</div></td>
<td colspan="2"><div class="informations">Durée : </div> <span class="informations_recuperees">'.$donnees_examen['duree_examen'].'</div></td>
<td></td>
</tr>
';
echo '<tr><td colspan="4" class="titre_examen">'.$donnees_messages['titre_examen'].'</td></tr>';
echo ' <tr>
<td colspan="4" class="titre_question">'.$donnees_messages['texte_question_examen'].'</td></tr>';
//echo '<tr><td colspan="4">REPONSE</td>';
echo ' </tr>
<tr>
<td colspan="4" class="titre_question">'.$donnees_messages['texte_question_examen'].'</td></tr>';
//echo '<tr><td colspan="4">REPONSE</td>';
echo ' </tr>
<tr>
<td colspan="4" class="titre_question">'.$donnees_messages['texte_question_examen'].'</td></tr>';
//echo '<tr><td colspan="4">REPONSE</td></tr>';
echo '
<tr>
<td colspan="4" class="titre_question">'.$donnees_messages['texte_question_examen'].'</td>';
//echo '</tr><tr><td colspan="4">REPONSE</td></tr>';
echo '
<tr>
<td colspan="4" class="titre_question">'.$donnees_messages['texte_question_examen'].'</td>';
}
} |
J'ai mis en commentaire la ligne que je voudrais afficher après chaque enregistrement tant qu'il y en a.
Pour résumer, voici les deux cas (il y en a un que je sais faire et l'autre non, c'est sur celui là que je demande votre aide !) :
Ce que je ne sais pas faire (à l'aide ! ;)) :
PREMIER ENREGISTREMENT
élément HTML ajouté
DEUXIEME ENREGISTREMENT
élément HTML ajouté
etc... (autant de fois qu'il y a des enregistrements dans la base de données)
Ce que je ne veux pas faire dans ce cas mais ce que je sais faire :
PREMIER ENREGISTREMENT
DEUXIEME ENREGISTREMENT
etc... (autant de fois qu'il y a des enregistrements dans la base de données)
Avant de poster ce message, j'ai quand même réfléchi :
Première solution : Pour chaque enregistrement trouvé dans la base de données, tu l'affiches et tu rajoutes l'élément HTML (donc un ) après puis tu passes à l'enregistrement suivant (incrémentation). Tu fais ça pour tout les enregistrements SQL trouvés. J'ai pensé à une boucle mais je n'arrive pas.
Deuxième solution : Pourquoi ne pas le faire avec un compteur ? Sur un site, j'ai vu ce code (on teste si le compteur est divisible par 2 et si oui on fait un au bon endroit c'est-à-dire après chaque enregistrement (là aussi il y a un problème avec ce code):
Code:
1 2 3 4 5 6 7
|
if ($compteur%2 == 1) {
echo 'Tralala';
}
else {
// Résultat issu de la DB
} |
Mais, je n'arrive pas à faire en sorte pour que ça marche pour mon cas.
En une phrase : comment intercaler un après chaque enregistrement SQL trouvé dans une boucle ?
Pouvez-vous m'aider ?
Comment faire le premier cas ?
Cordialement