> 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
58,99 €SSD WD Blue SN550 500 Go (NMVe M.2, 2400 Mo/s) à 58,99 €
Valable jusqu'au 20 Avril

Amazon fait une promotion sur le SSD WD Blue SN550 500 Go (NMVe M.2) qui passe à 58,99 € livré alors qu'on le trouve ailleurs à partir de 75 €. Ce SSD utilise une interface M.2 NVMe PCIe Gen3 x 4 pour une connexion simple et des performances exceptionnelles : jusqu’à 2 400 Mo/s en lecture séquentielle et jusqu’à 1 950 Mo/s en écriture séquentielle. Le SSD est doté de la technologie 3D TLC NAND haute densité offrant une endurance d’écriture durable et assorti d’une garantie de cinq ans. 


> Voir l'offre
74,99 €Webcam Logitech C922 Pro à 74,99 €
Valable jusqu'au 18 Avril

Amazon propose actuellement l'excellente webcam Logitech C922 Pro à 74,99 € livrée gratuitement alors qu'on la trouve ailleurs à partir de 100 € . Elle va vous permettre de diffuser et d'enregistrer des vidéos en 1080p à 30 images par seconde. De plus, la C922 Pro s'ajuste automatiquement aux éclairages faibles alors que les deux microphones omnidirectionnels capturent l'audio en stéréo sous tous les angles. Livrée avec un trépied pour surface plane, il intègre un support pivotant et est extensible jusqu'à 18.5 cm pour permettre à votre C922 d'adopter l'angle le plus avantageux.


> Voir l'offre
99,99 €Barre de son 2.1 Samsung HW-T420 (Bluetooth, optique) avec caisson de basses à 99,99 € (via ODR)
Valable jusqu'au 17 Avril

Cdiscount fait une promotion sur la barre de son 2.1 Samsung HW-K335 avec caisson de basses à 99,99 € alors qu'on la trouve ailleurs autour de 150 €. Cette barre de son dispose d'une connectivité complète avec le bluetooth, une prise optique et une prise USB. 


> 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