Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1481 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Pb d'affichage avec plusieurs éléments

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Pb d'affichage avec plusieurs éléments

n°1043204
micfont999
Simplement Moi
Posté le 11-04-2005 à 16:51:19  profilanswer
 

Salut à tous,  
voila je colle sur un code que je doit faire...
J'ai des éléments dans ma table, qui comportent des données différentes comme le nom de la personne, le sexe, etc, mais j'ai des éléments qui sont identiques (comme par exemple la date de naissance).. Ce que je veux faire c'est faire afficher tout ce qu'il y à dans ma table, mais en regroupant les éléments dont la date correspond...
JE vous explique avec un exemple :  
 
Marcel ::: Né le 08 nov :: A reims
René ::: Né le 12 mars :: à Paris
Philippe ::: Né le 16 juin :: A perpignan
Louis ::: Né le 08 nov :: A calais
Jean ::: Né le 12 mars :: Au touquet
Robert ::: Né le 08 nov :: A Paris
 
Ce que je ve, c'est un affichage d'un tableau affichant :  
 
Né le 08 nov : Marcel, Louis, Robert ::> voir leur descriptions
Né le 12 Mars : René, Jean ::> Voir leur descriptions
Né le 16 juin : Philippe ::> Voir sa description
 
En fait je colle pour réunir tous les éléments et les faires afficher à la suite, si quelqu'un peu m'aider, ce serait vraiment gentil à vous, j'ai juste besoin de la requete ou du moyen d'afficher ça en if(plusieurs date sont identique){ alors on affiche tous les prenom }
J'espère que c'est possible :) MERCI !!
 
PS : c'est une sorte de requete multiple ou i lfaudrai que je selection déjà la date, après suivant la date les gusses, mais je voi pas comment... HELP, merci a tous


Message édité par micfont999 le 13-04-2005 à 16:30:06

---------------
> http://graphicriver.net/user/micfo [...] micfont999  
mood
Publicité
Posté le 11-04-2005 à 16:51:19  profilanswer
 

n°1043223
soju
One shot !
Posté le 11-04-2005 à 17:07:39  profilanswer
 

un truc simple sans passer par sql : tu stockes tes résultats dans un tableau associatif qui aura comme clés les dates de naissances.
=> pour chaque enregistrement tu fais un truc du genre :

Code :
  1. $data[$date][]=$row;

n°1043228
micfont999
Simplement Moi
Posté le 11-04-2005 à 17:08:42  profilanswer
 

Kikou c encore moi, si au moins vous pouviez m'aider pour annuler les différents doublons, par exemple faire une première requete pour avoir toutes les dates :: je supprime celles qui sont en plusieurs pour n'en avoir qu'une et après je refait une autre requete pour me trouver les noms des gusses suivant la date que j'ai obtenu, je ne voit vraiment pas comment faire,  
j'ai un SELECT * FROM tbl_nom ORBER BY date_naissance
Il faudrai que j'arrive à analyser tout, et que ma variable $date=une première date et ainsi faire ma seconde requete SELECT * FROM tbl_nom WHERE date_naissance=$result->$date ..
PLEASE HELP ME.
merci de tt coeur


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043229
micfont999
Simplement Moi
Posté le 11-04-2005 à 17:11:08  profilanswer
 

soju a écrit :

un truc simple sans passer par sql : tu stockes tes résultats dans un tableau associatif qui aura comme clés les dates de naissances.
=> pour chaque enregistrement tu fais un truc du genre :

Code :
  1. $data[$date][]=$row;



 
 :)  Et une fois que j'ai ça, j'en fé quoi?? Désolé je me débrouille d'habitude en php, mais la, ça coince, il va me détecter toutes les dates une par une? Le $row fait quoi??


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043232
soju
One shot !
Posté le 11-04-2005 à 17:13:11  profilanswer
 

donc tu vas faire autant de requetes qu'il y a de dates... pas tres efficace...
regarde la solution que je te propose plus haut, c'est plus simple.
 
PS: DISTINCT tu connais en sql ?

n°1043237
micfont999
Simplement Moi
Posté le 11-04-2005 à 17:20:57  profilanswer
 

Non connais pas DISTINCT c'est quoi?
En fait je la comprend pas ta solution, après avoir fait ma requete SELECT * FROM ... je fais donc mon mysql_query et... la je voi pas, ta solution elle fait quoi??


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043246
soju
One shot !
Posté le 11-04-2005 à 17:26:29  profilanswer
 

bon, un autre exemple plus parlant :
 

Code :
  1. $data = array();
  2. $result = mysql_query('SELECT date, nom FROM personnes ORDER BY date');
  3. while ($row=mysql_fetch_assoc($result))
  4. {
  5.   $data[$row['date']][] = $row['nom'];
  6. }


tu auras donc dans $data toutes les personnes regroupées par date de naissance
 
PS: distinct c'est pour virer les doublons...


Message édité par soju le 11-04-2005 à 17:27:09
n°1043252
micfont999
Simplement Moi
Posté le 11-04-2005 à 17:28:09  profilanswer
 

j'essai ça de suite ^^ Merki !! Je te dit quoi


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043256
micfont999
Simplement Moi
Posté le 11-04-2005 à 17:31:15  profilanswer
 

Rahh il ne me retourne rien... Dsl... JE voi bien coment ça marche la c'est bon, j'ai il ne me met aucune valeur... Rohh bon on va y arriver oui !!


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043264
micfont999
Simplement Moi
Posté le 11-04-2005 à 17:41:07  profilanswer
 

Si je fait un  
echo"$row[date_naissance]<br>";
echo"$row[nom]<br>";
Il me met les champs, jusque la rien de bien sorcier ça marche
En revanche si je met  
echo"$row[date_naissance]<br>";
echo"$row[nom]<br>";
 
alors la :  
Notice: Use of undefined constant nom - assumed 'nom' in c:\program files\easyphp1-8\www\scyrendale\espace_prive\gestion_naissance\module_gestion_naissance.php on line 17
Array
Notice: Use of undefined constant date_naissance - assumed 'date_naissance' in c:\program files\easyphp1-8\www\scyrendale\espace_prive\gestion_naissance\module_gestion_naissance.php on line 17
 
Il m'affiche cette erreur et le array... ça veut dire quoi, qu'il ne trouve pas la relation??


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
mood
Publicité
Posté le 11-04-2005 à 17:41:07  profilanswer
 

n°1043265
micfont999
Simplement Moi
Posté le 11-04-2005 à 17:42:17  profilanswer
 

Oups je voulais dire, en revanche si je met  
$data[$row[date_naissance]][] = $row[nom_chien];
echo"$data";  
DSL erreur de ctrl C ctrl V :$


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043689
soju
One shot !
Posté le 12-04-2005 à 09:01:23  profilanswer
 

tu as mal compris, il faut que tu affiches $data à la fin, de plus $data est un array donc pas de echo...
donc recapitulons, à la fin tu fais par exemple :

Code :
  1. foreach($data as $date=>$personnes)
  2. {
  3.   echo $date.' : '.implode(', ', $personnes).'<br />';
  4. }

n°1043701
micfont999
Simplement Moi
Posté le 12-04-2005 à 09:20:35  profilanswer
 

soju a écrit :

tu as mal compris, il faut que tu affiches $data à la fin, de plus $data est un array donc pas de echo...
donc recapitulons, à la fin tu fais par exemple :

Code :
  1. foreach($data as $date=>$personnes)
  2. {
  3.   echo $date.' : '.implode(', ', $personnes).'<br />';
  4. }



 
Kikou, merci encore pour tes réponses, et désolé de pas toujours tout comprendre, j'ai encore un peu de mal lorsque ce n'est pas des trucs tout simple avec une requete le résultat et on affiche  :D  quelques fois un piti eregi et c'est tout.... :sarcastic:  juste une toute petite question encore, ton $date et $personne correspondent aux données de la base, il fo que je fasse un truc du style $date=$row['date'] ??? Merci pour toute vos réponses encore  :jap:


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043741
micfont999
Simplement Moi
Posté le 12-04-2005 à 09:48:26  profilanswer
 

Alors voila, la ça marche, voici mon code  

Code :
  1. $cx=mysql_connect("$host","$user","$pass" );
  2. $base=mysql_select_db("$bdd" );
  3. $data = array();
  4. $result = mysql_query('SELECT * FROM tbl_perso ORDER BY date_naissance');
  5. while ($row=mysql_fetch_assoc($result))
  6. {
  7. $date=$row['date_naissance'];
  8. $nom=$row['nom'];
  9. $data[$row['date_naissance']][] = $row['nom'];
  10. foreach($data as $date=>$nom)
  11. {
  12.   echo $date.' : '.implode(', ', $nom).'<br />';
  13. }
  14. echo"<br> -----------<br>";
  15. }


 
Il m'affiche les différents résultats mais suivant le while, hors moi il me faudrai juste la dernière valeur :: Je vous montre le résultat :
 
02-02-2005 : Paul
 
-----------
02-02-2005 : Paul
02-05-2005 : Jean
 
-----------
02-02-2005 : Paul
02-05-2005 : Jean
05-05-2005 : Jacques
 
-----------
02-02-2005 : Paul
02-05-2005 : Jean
05-05-2005 : Jacques, René
 
-----------
02-02-2005 : Paul
02-05-2005 : Jean
05-05-2005 : Jacques, René, Pierre
 
... etc, etc, etc
et à la dernière ligne  
 
-----------
02-02-2005 : Paul
02-05-2005 : Jean
05-05-2005 : Jacques, René, Pierre, Alex, Emilie
07-05-2004 : Ambroise, Ginnette, Sandrine
09-04-2005 : Emilie, Michel
10-03-2005 : Essai 01, Essai 02
 
-----------
 
 :??:  :??:  :??: Comment faire pour limiter le résultat à la dernière ligne au juste? Je suis paumé, si quelqu'un pouvais juste me donner ce tri... MERKI !!  :hello:  ;) (Je sens que ça va me servir ce petit code....) :ange:  


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043743
soju
One shot !
Posté le 12-04-2005 à 09:48:37  profilanswer
 

micfont999 a écrit :

ton $date et $personne correspondent aux données de la base, il fo que je fasse un truc du style $date=$row['date']

non, regarde bien le foreach...
je recapitule :

Code :
  1. $data = array();
  2. $result = mysql_query('SELECT * FROM tbl_perso ORDER BY date_naissance');
  3. while ($row=mysql_fetch_assoc($result))
  4. {
  5.   if (!isset($data[$row['date_naissance']])) $data[$row['date_naissance']]=array();
  6.   $data[$row['date_naissance']][] = $row['nom'];
  7. }
  8. foreach($data as $date=>$personnes)
  9. {
  10.   echo $date.' : '.implode(', ', $personnes).'<br />';
  11. }


 
EDIT: j'avais dit de mettre le foreach a la fin


Message édité par soju le 12-04-2005 à 09:52:45
n°1043786
micfont999
Simplement Moi
Posté le 12-04-2005 à 10:09:33  profilanswer
 

soju a écrit :

non, regarde bien le foreach...
je recapitule :

Code :
  1. $data = array();
  2. $result = mysql_query('SELECT * FROM tbl_perso ORDER BY date_naissance');
  3. while ($row=mysql_fetch_assoc($result))
  4. {
  5.   if (!isset($data[$row['date_naissance']])) $data[$row['date_naissance']]=array();
  6.   $data[$row['date_naissance']][] = $row['nom'];
  7. }
  8. foreach($data as $date=>$personnes)
  9. {
  10.   echo $date.' : '.implode(', ', $personnes).'<br />';
  11. }


 
EDIT: j'avais dit de mettre le foreach a la fin


 
 
 :ouch:  :ouch:  :wahoo:  ça marche !!!! MERKI !!  :pt1cable:  
Par contre je comprend pas comment les variables $date et $personnes font pour prendre une valeur... Je vais essayer de bidouiller tt ça pour essayer de comprendre un peu, parce que la je pige pas tout, si par exemple je veux rajouter le sexe de la personne, alors la ??? lol j'en sais pas plus, en tout cas merci, et puis si ta 5 minutes pour m'expliquer comment ça fonctionne ces bêtes j'en serais ravi, mais la tu m'a déjà carement bien aidé !!!  :love:  MERCI vraiment  :whistle:  


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043856
micfont999
Simplement Moi
Posté le 12-04-2005 à 10:47:25  profilanswer
 

QUESTION :::  
peut on mettre dans un foreach() plusieurs conditions :
Par exemple, si après le nom de la personne, je veux aussi avoir son sexe, j'arrive à l'afficher dans un deuxième foreach() mais pas dans le premier à la suite des prenoms des personnes, ou ne serait ce même que pour avoir le nom et le prénom à la suite, chose toute bête, comment faire?  
 
Voila le code  

Code :
  1. $data = array();
  2. $result = mysql_query('SELECT * FROM tbl_perso ORDER BY date_naissance');
  3. while ($row=mysql_fetch_assoc($result))
  4. {
  5.   if (!isset($data[$row['date_naissance']])) $data[$row['date_naissance']]=array();
  6.   $data[$row['date_naissance']][] = $row['nom'];
  7.   $data02[$row['date_naissance']][] = $row['sexe'];
  8. }
  9. foreach($data as $date=>$nom AND $data02 as $date=>$sexe) [#ff2a00]// pb à cette ligne je pense
  10. {
  11.   echo $date.' : '.implode(', ', $nom;',',$sexe).'<br />'; [#ff2a00]// je pense que cette ligne est completement foireuse aussi
  12. }


 
et bien sur la petite erreur ::  :pfff:  
Parse error: parse error, expecting `')'' in c:\program files\easyphp1-8\www\scyrendale\espace_prive\gestion_naissance\module_gestion_naissance.php on line 50
 
lol, je tente des choses on sais jamais, sur nexen j'ai regardé un peu comment fonctionne les différentes requetes et je pense que ce que j'ai fais est completement impossible mais j'aimerais savoir un peu comment faire, si vous avez une idée, ou si c'est impossible, faites le moi savoir  :sweat:  :sweat: merci d'avance


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1043889
soju
One shot !
Posté le 12-04-2005 à 11:02:51  profilanswer
 

hou là... regarde la doc de foreach : http://fr.php.net/foreach
et reapprend un peu le php, là c'est n'importe quoi...
 
encore un exemple :

Code :
  1. $data = array();
  2. $result = mysql_query('SELECT * FROM tbl_perso ORDER BY date_naissance');
  3. while ($row=mysql_fetch_assoc($result))
  4. {
  5.   if (!isset($data[$row['date_naissance']])) $data[$row['date_naissance']]=array();
  6.   $data[$row['date_naissance']][] = $row['nom'].' ('.$row['sexe'].')';
  7. }
  8. foreach($data as $date=>$personnes)
  9. {
  10.   echo $date.' : '.implode(', ', $personnes).'<br />';
  11. }


 

n°1043900
micfont999
Simplement Moi
Posté le 12-04-2005 à 11:08:21  profilanswer
 

A la la la la, comment t une star, pfff et moi c vrai que je suis vraiment mauvais, bon bah j'ai plus qu'a aller me recoucher, mdr... Je te remercie soju, je pense que je viens d'apprendre plus de choses en deux jours, que en deux en à l'iut, sympa à toi d'avoir pris le temps de me montrer tout cela... quand même c'est beau la technologie et tout ce qu'on peut faire avoir tout ça...
Encore MERCI de tout coeur, et je reviens vous voir si j'ai un autre bug, mais la je pense que j'ai tout ce qu'il me faut... Enfin j'espère :: Merci encore.. !!! :D


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1044354
micfont999
Simplement Moi
Posté le 12-04-2005 à 15:22:03  profilanswer
 

Encore une pitite question, je n'arrive pas à passer un parametre dans le lien que je fais afficher à coté de mes données, je veux lui passer le paramètre du nom du mec mais j'ai un beug... VOila la synthaxe :  
 
 
$dateget=$row['date_naissance'];
 
  if (!isset($data[$row['date_naissance']]))  
 $data[$row['date_naissance']]=array();  
   $data[$row['date_naissance']][] = '...prenom : '.$row['prenom'].' ('.$row['sexe'].') ... => <a href=naissance.php?date=$dateget>Voir la naissance</a> <br>';
}  
foreach($data as $date=>$personnes)  
{  
   echo '<b> >> </b> A la date du '.$date.': <br>  '.implode('', $personnes).'<br />';
}
 
Il ne veut pas prendre en compte mon nom... Pourquoi??  
merci encore pour toutes vos réponses et surtout toi soju :D
Merci


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1044542
soju
One shot !
Posté le 12-04-2005 à 17:02:18  profilanswer
 

micfont999 a écrit :

je veux lui passer le paramètre du nom du mec mais j'ai un beug

dans ton code le seul parametre que tu passes c'est $dateget, je ne vois nul part de nom

n°1044545
micfont999
Simplement Moi
Posté le 12-04-2005 à 17:04:36  profilanswer
 

kikou, non c bon j'ai trouver, tien voila la bonne requete,
 
$data[$row['date_naissance']][] = '...prenom : '.$row['prenom'].' ('.$row['sexe'].') ... => <a href=naissance.php?date='.$dateget.'&pere='.$nomprget.'&mere='.$nommrget.'> Voir la naissance</a> <br>';
 
C'est au niveau du '.$dateget.' que j'avai oublié les '' et les .  
Merci maintenant c'est vraiment bon tout marche nikel.. ;) C'est tout ce qu'il me fallait !!
Encore merci ;)


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU] Pb d'affichage avec plusieurs éléments

 

Sujets relatifs
[HTML] probleme de lien image[resolu]Log -> PHP -> Mysql | Coment faire ? [Résolu]
[java] clone() [partielement resolu]Problème PHP -> affichage de certaines choses d'une table MySQL
Connection à db + affichage d'une requêteRectangles pleins - [RESOLU]
debutant comment faire plusieurs Login et Passcomment mettre un lien sur un bouton flash ??? [Résolu]
probleme d'affichage dans une listboxPetite question sur ereg_replace [résolu]
Plus de sujets relatifs à : [RESOLU] Pb d'affichage avec plusieurs éléments


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR