PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 16-02-2010 14:42:53

t14
Membre
Inscription : 10-09-2009
Messages : 96

Réïtération de données Array pour affichage

Bonjour,

Pour rester sur le même script, celui-ci lit la base de données (3 tables en jointure tongue ) et affiche le résultat dans un tableau (table infos réunis les infos ou sorties, table membres réunis les membres, inscr_sortie sert à liéer les infos aux membres avec 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'].' '.$row['prenom'].'</td>';
        }

Pour l'affichage du même "titre" et "texte", je peux avoir plusieurs "nom,prenom".
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

Hors ligne

#2 16-02-2010 15:04:38

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Réïtération de données Array pour affichage

Ce sujet aborde le même problème. J'y propose une solution : http://forum.phpdebutant.org/viewtopic.php?id=5242

Hors ligne

#3 16-02-2010 16:29:05

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Réïtération de données Array pour affichage

xTG a écrit :

Ce sujet aborde le même problème. J'y propose une solution : http://forum.phpdebutant.org/viewtopic.php?id=5242

Merci xTG, mais je ne vois pas trop le rapport avec mon souci, ni comment m'en servir !
Je pensais plutôt à une boucle, dans la boucle déjà existante !!!!

Dernière modification par t14 (16-02-2010 16:32:19)

Hors ligne

#4 16-02-2010 20:22:45

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Réïtération de données Array pour affichage

C'est exactement le même problème qui avait été posé.
Sauf qu'au lieu de titre/texte il avait un titre de catégorie et que pour chaque nom/prénom il avait un titre de sous catégorie.

Le but dans la méthode est d'afficher ton titre et ton texte mais ce une seule fois. Il faut donc passer par un tableau (ou une variable si un seul élément) pour pouvoir par la suite savoir si on a déjà affiché le contenu ou non.

Hors ligne

#5 17-02-2010 18:14:54

t14
Membre
Inscription : 10-09-2009
Messages : 96

Re : Réïtération de données Array pour affichage

OK ! J'ai pris exemple, mais ça marche pô ....:(

Faut dire qu'il y a certaines choses que je n'ai pas vraiment compris, et j'ai fait cela pour tester :

$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() );

$tabFlagTitre = array();
while( $item = mysql_fetch_array($result) )

{
  //Si la rubrique n'a jamais été affichée on l'affiche et on passe le flag à 1
  if( !isset($tabFlagTitre[$item['infos.titre']]) )
  {
    $tabFlagTitre[$item['infos.titre']] = 1;
    echo $item['infos.titre'];
  }
 
        echo '<tr>';
        echo '<td>'.$row['jour'].'/'.$row['mois'].'/'.$row['an'].'</td>';
        echo '<td>'.$row['titre'].'</td>';
        echo '<td>'.$row['texte'].'</td>';
        echo '<td>'.$row['nom'].' '.$row['prenom'].'</td>';
        echo '</tr>';

Sinon, comment récupérer la valeur de $row['titre'] ? Suffirait de la mettre dans une variable, et de la tester à chaque passage.
Si elle ne change pas, je boucle sur "echo '<td>'.$row['nom'].' '.$row['prenom'].'</td>';" , sinon j'affiche le titre suivant.

Hors ligne

#6 17-02-2010 18:38:43

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Réïtération de données Array pour affichage

Ton raisonnement pour la variable peut être appliqué. Cela revient au même que le flag. Mais plus optimal car tu n'utilises qu'une variable au lieu d'un tableau.
Donc si tu n'as pas de "stats" à faire après l'affichage concernant ce que tu as affiché une seule variable suffirait pour ton cas.

Concernant ce qui ne marche pas pourrais-tu être plus précis ? Je n'ai pas amené ma boule de cristal aujourd'hui. ^^

Pour finir j'aimerai apporter ton attention sur tes noms d'attributs. Des fois tu utilises infos.attribut et des fois seulement attribut. Il y a forcement l'un qui n'affichera rien...
Commence par remplacer l'étoile dans ton select pour savoir ce que tu récupères et tu ne t'embrouilleras que moins.

Hors ligne

Pied de page des forums