> Tous les forums > Forum des Webmasters
 réïtération de lecture de champs dans une boucleSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
t671
  Posté le 17/02/2010 @ 11:18 
Aller en bas de la page 
Astucien

Bonjour,

Je lis 3 tables en jointure et j'affiche le résultat dans un tableau (table infos qui réunis des infos, table membres qui réunis les membres, inscr_sortie sert à liéer la table info à la table membres pour les inscriptions):

$requete="SELECT * FROM infos
LEFT OUTER JOIN inscr_sortie ON infos.id = inscr_sortie.liaison_id_infos
LEFT OUTER JOIN membres ON inscr_sortie.liaison_id_mb = membres.id_mb
ORDER BY infos.date ASC";
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
{
echo '<tr>';
if (empty($row['date']))
{
echo '<td>'.$row['titre'].'</td>';
echo '<td>'.$row['texte'].'</td>';
echo '<td>'.$row['nom'].'&nbsp;'.$row['prenom'].'</td>';
}

Pour l'affichage du même "titre" et "texte", je peux avoir plusieurs "nom,prenom" (plusieurs enregistrements).
Là, si j'ai un deuxième "nom,prenom" pour le même "titre" et "texte", je réaffiche les titre et texte une deuxième fois.
Je voudrais que tous les "nom,prenom" pour le même titre et texte s'affiche dans le même <td>.
Comment faire ?

Merci

Publicité
Malcolm
 Posté le 17/02/2010 à 18:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

stocke en variable le nom/prénom actuellement lu au passage de la boucle. Et en début de boucle, vérifie si le nouveau nom est différent ou pas.

Si oui : nouvelle ligne.

t671
 Posté le 18/02/2010 à 11:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Malcolm a écrit :

stocke en variable le nom/prénom actuellement lu au passage de la boucle. Et en début de boucle, vérifie si le nouveau nom est différent ou pas.

Si oui : nouvelle ligne.

C'est effectivement ce que je voudrais faire, mais je ne sais pas (ou je ne sais plus) comment lire un élément de la boucle ....

Malcolm
 Posté le 18/02/2010 à 23:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

$nom_actuel = '';

while($ligne = mysql_fetch_array($reponse)

{

// nouvelle ligne ?

if ($ligne['nom'] != $nom_actuel) // oui

{ echo '</td></tr> <tr><td>'; $nom_actuel = $ligne['nom']; }

echo blabla

};

echo '</td></tr></table>';

Après tel quel, tu vas avoir un bug : à la première lecture, il va voir que le != $nom_actuel est vrai (puisque $nom_actuel sera initialisé vide) et il fermera tout de même la ligne, ligne non ouverte précédemment puisque pas de passage précédent dans la boucle.

Il suffit alors de remplacer

echo '</td></tr> <tr><td>'; $nom_actuel = $ligne['nom'];

par :

echo ($nom_actuel != '') ? '</td></tr> <tr><td>' : ''; $nom_actuel = $ligne['nom'];

et ainsi il ne fermera la ligne que si $nom_actuel non vide, ce qui signifie qu'il sera passé au moins une fois dans la boucle.

Par contre ça fait plusieurs posts que tu fais où le souci n'est pas tellement de la prog, mais de l'algo : je te conseille de mieux décomposer en étapes élémentaires ton raisonnement, tu y gagneras en rapidité ...

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
9,99 €Adaptateur Bluetooth USB TP-Link UB400 à 9,99 €
Valable jusqu'au 23 Avril

Amazon fait une promotion sur l'adaptateur Bluetooth USB TP-Link UB400 qui passe à 9,99 €. Cet adaptateur à brancher sur un port USB va vous permettre d'ajouter le bluetooth à votre ordinateur et d'utiliser ensuite sans fil vos périphériques bluetooth : souris, clavier, casque, manette, téléphone, ...


> Voir l'offre
199,99 €Pack de 2 disques durs Seagate NAS Iron Wolf 4 To à 199,99 €
Valable jusqu'au 23 Avril

Cdiscount propose le pack de 2 disques durs Seagate IronWolf 4 To à 199,99 €. Ces disques durs 3.5 pouces SATA III sont adaptés aux NAS et ordinateurs qui fonctionnent 24h/24. On les trouve ailleurs autour de 120 € l'unité. Disques CMR.


> Voir l'offre
67,99 €Alimentation semi modulaire Be Quiet Pure Power 11 700W, 80+ Gold à 67,99 €
Valable jusqu'au 23 Avril

Amazon propose actuellement l'alimentation semi modulaire Be Quiet Pure Power 11 d'une puissance de 500W à 67,99 € livrée gratuitement. On trouve habituellement cette alimentation à partir de 75 €. Certifiée 80+ Gold, elle propose d'excellents rendements (jusqu'à 92 %) est silencieuse et dispose d'une garantie 5 ans.


> Voir l'offre

Sujets relatifs
Lecture fichiers vidéos dans un site.
Requete Sql, afficher une seul fois dans boucle
Addition de champs dans un formulaire
Lecture fichier wmp dans page web
Problème lecture MP3 dans IE
champs de longueur indéfini dans mysql
champs obligatoire dans un formulaire
editeur TinyMCE grande largeur texte dans page
Texte dans tableau
Lecture d'un xml
Plus de sujets relatifs à réïtération de lecture de champs dans une boucle
 > Tous les forums > Forum Forum des Webmasters