IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

extraction de donnees et formatage


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut extraction de donnees et formatage
    bonjour

    je suis collé depuis plusieurs jours sur un probleme de formatage
    je voudrais afficher dans une table toutes les personnes habitant dans la même commune
    exemple HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <table border=0 summary="">
    	<tr>
    		<td colspan=3>le nom de la commune</td>
    	</tr>
    	<tr>
    		<td>prenom_1</td>
    		<td>prenom_2</td>
    		<td>prenom_3</td>
    	</tr> 
    	<tr>
    		<td colspan=3>le nom de la commune</td>
    	</tr>	
    	<tr>
    		<td>prenom_4</td>
    		<td></td>
    		<td></td>
    	</tr> 	
    	<tr>
    		<td>prenom_5</td>
    		<td>prenom_6</td>
    		<td>prenom_7</td>
    	</tr> 	
    	<tr>
    		<td>prenom_8</td>
    		<td>prenom_9</td>
    		<td>prenom_10</td>
    	</tr> 
    </table>
    pour cela j'ai fait une requette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql="SELECT VILLES_REUNION.VILLE, RANDONNEUR.COMMUNE, RANDONNEUR.NOM_PRENOM, VILLES_REUNION.LAT, VILLES_REUNION.LNG ";
    $sql.="FROM RANDONNEUR LEFT JOIN VILLES_REUNION ON RANDONNEUR.COMMUNE = VILLES_REUNION.COMMUNE ";
    $sql.="where  RANDONNEUR.FLAG = 'Y' and VILLES_REUNION.LAT != '' order by VILLE ";
    et pour formater le tout le bout de code incomplet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $id_ville  = '';
    while($row = mysql_fetch_assoc($aff_randonneur))
      {
      if($row["COMMUNE"] != $commune) // si c'est une nouvelle ville
        {
        if($commune) {echo '<tr><td colspan="3" align="left"><b><b>'.$row["VILLE"].'</b></b></td></tr><tr>'; }
     
    	$nom = '<td>'.$row["NOM_PRENOM"].'</td>';
        $fin = "</tr>";
     
        }
        else { echo''.$nom.'</tr>'; }
      }	  
      echo '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
    je n'arrive pas à déterminer le nombre de personne au sein d'une même commune

    un petit coup de pouce please

    a+ gilles

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Si tu veux avoir ton nombre de randonneur par commune, il te suffit de modifier ta requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql="
    SELECT villes_reunion.ville, randonneur.commune, randonneur.nom_prenom, villes_reunion.lat, villes_reunion.lng, COUNT(randonneur.nom_prenom) --comme ca tu comptes tes randonneurs par commune
    FROM randonneur LEFT JOIN villes_reunion ON randonneur.commune = villes_reunion.commune
    WHERE  randonneur.flag = 'y' and villes_reunion.lat != '' 
    ORDER BY ville";
    Z.

    PS : on met par convention les nom de table et attributs en minuscule, et les termes propres au langage sql en majuscule, pour plus de lisibilité du code

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    merci

    je vais taché d'utiliser les conventions sur mes prochaines tables

    ok pour le comptage des personnes mais reste le probleme de formatage je me paume dans les for et while

    j'arrive à afficher les comunnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    while($row = mysql_fetch_assoc($aff_randonneur))
      {
      if($row["COMMUNE"] != $commune) // si c'est une nouvelle ville
        {
        echo '<tr><td colspan="3" align="left"><b><b>'.$row["VILLE"].'</b></b></td></tr><tr>';
     
    ----> comment poser ici $prenoms sur 3 colonnes <--------
     
        $prenoms = $row["NOM_PRENOM"];
        $commune = $row["COMMUNE"];
        }
     
      }
    a+ gilles

  4. #4
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Peut etre un truc comme ca : (il y a surement des fautes dans mon code )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $id_ville  = '';
    while($row = mysql_fetch_assoc($aff_randonneur))
      {
      if($row["COMMUNE"] != $commune) // si c'est une nouvelle ville
      	{
    	$commune = $row["COMMUNE"];//sauvegarder en tant que commune precedente
        echo '</tr><tr><td colspan="3" align="left"><b><b>'.$row["VILLE"].'</b></b></td></tr><tr>';//ET l'afficher
        }
    	//et continuer d'afficher les randonneurs
    	$nom = '<td>'.$row["NOM_PRENOM"].'</td>';
      }  
      echo '</tr><tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
    Z.

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    je suis arrivé a quelque chose
    j'arrive a déterminer le nbr de personne dans la commune

    mais à l'affichage j'ai le mêne nom qui se repete x fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    while($row = mysql_fetch_assoc($aff_randonneur))
      {
      if($row["COMMUNE"] != $commune) // si c'est une nouvelle ville
        { 
        $prenoms = $row["NOM_PRENOM"];
        $commune = $row["COMMUNE"];	
        echo '<tr><td colspan="3" align="left"><b><b>'.$row["VILLE"].'</b></b></td></tr>';
        for($i=0;$i<=$row['COUNT(RANDONNEUR.NOM_PRENOM)'];$i++)	 
    	   {
    	   echo '<tr><td>'.$prenoms.'</td></tr>';
    	   }	
    	   $i=0;
     
        }
      }

  6. #6
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    C'est tout a fait normal, car tu affiche $prenom dans ta boucle, x fois sans changer $prenom
    Z.

  7. #7
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    $max_par_ligne = 3;
    while($data = mysql_fetch_assoc($aff_randonneur)) {  //on fourre la requete dans un tableau associatif
    	$tablo[$data['commune']][] = $data['nom_prenom']; 
    	}
     
    //mysql requete, as tu vraiment besoin des autres attributs que nom_prenom et commun ?
     
    //on parcours le tableau associatif et on affiche les données
    echo '<table border="1">';
    foreach ($tablo as $key => $value) { //pour chaque commune
    	echo '<tr><td colspan="' . $max_par_ligne . '">' . $key . '</td></tr>';
    	echo '<tr>';
    	$i = 0;
    	foreach ($value as $value2) { //pour chaque randonneur
    		if (!($i % $max_par_ligne) && ($i != 0)) echo '</tr><tr>'; //si pack de 3, nouvelle ligne
    		echo "<td>$value2 $i</td>";
    		$i ++;
    		}
    	echo '</tr>';
    	}
     
    echo '</table>';
    ?>
    Z.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    j'ai trouvé le bug c'était le COUNT(RANDONNEUR.NOM_PRENOM) qui foutais le bazard.

    code qui marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <table width=600 border=1 summary="">
    <caption>RETROUVEZ DES RANDONNEURS DANS VOTRE COMMUNE</caption>
    <?php
    $sql="SELECT VILLES_REUNION.VILLE, RANDONNEUR.COMMUNE, RANDONNEUR.NOM_PRENOM ";
    $sql.="FROM RANDONNEUR LEFT JOIN VILLES_REUNION ON RANDONNEUR.COMMUNE = VILLES_REUNION.COMMUNE ";
    $sql.="where  RANDONNEUR.FLAG = 'Y' and VILLES_REUNION.LAT != '' order by VILLE "; 
    $aff_randonneur = rando($sql);	   
     
    $max_par_ligne = 3;
    while($data = mysql_fetch_assoc($aff_randonneur)) {  //on fourre la requete dans un tableau associatif
    	$tablo[$data['VILLE']][] = $data['NOM_PRENOM'];  
    	}
     
        foreach ($tablo as $key => $value) { //pour chaque commune
    	   echo '<tr><td colspan="3" bgcolor="#FFFF66"><b>' . $key . '</b></td></tr>';
    	   echo '<tr>';
     
    	$i = 0;
    	foreach ($value  as $randonneur) { //pour chaque randonneur
    		if (!($i % $max_par_ligne) && ($i != 0)) echo '</tr><tr>'; //si pack de 3, nouvelle ligne
    		echo "<td>".$randonneur."</td>";
    		$i ++;
    		}
    	echo '</tr>';
       }	 
    echo '</table>';  
    ?>  
    </table>
    j'aimerais rajouter une info au tableau : l'email comment je dois mis prendre pour imbriquer 2 foreach ?

    j'ai rajouter le tableau $tablo[$data['NOM_PRENOM']][] = $data['EMAIL']; sous le premier

Discussions similaires

  1. extraction de donnees vers vecteur c++
    Par quantanalyst dans le forum C++
    Réponses: 12
    Dernier message: 20/08/2008, 09h59
  2. Extraction de données pour Excel
    Par energies dans le forum Access
    Réponses: 6
    Dernier message: 08/12/2006, 15h37
  3. Extraction de donnees a partir d'un fichier excel
    Par atv_picco dans le forum Modules
    Réponses: 6
    Dernier message: 31/08/2006, 18h34
  4. Extraction de données
    Par ujoodha dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 10/08/2006, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo