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 :

[Tableaux] Tableau issu de BD [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Points : 78
    Points
    78
    Par défaut [Tableaux] Tableau issu de BD
    Bonjour a tous,

    La question va vous paraitre peut etre simple, mais je debute....
    Voici mon problème :

    ma requete SQL me sort ce type de resultats :

    T_NomSite T_Ville T_CP T_Effectif T_Commercial
    Site1 ---- Paris ---- 75000 ---- 11 ---- MNP
    Site1 ---- Paris ---- 75000 ---- 11 ---- ADPT


    j'ai deux lignes, parce que pour ce site j'a 2 commecials (le nombre peut varier)


    Ma question : comment je peux afficher les données sous cette forme ?

    Nom Site : Site1
    Ville : Paris
    Code Postal : 75000
    Effectif : 11
    Commerciaux : MNP, ADPT


    càd. Totes les informations une fois, et la colonne des commercaux, avec une virgule...

    J'espere, j'etais claire


    pour l'instant j'ai ce code :
    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
     
    $connexion = new Connexion();
     
    $requeteCoordonnees = "select T_Site.Nom as NomSite , Liste_Ville.Nom as NomVille, CodePostal, Effectif, Liste_Commercial.Initiale as NomITC  from  T_Site, Liste_Ville, Liste_Commercial, Site_ITC  where  Liste_Ville.num_Ville = T_Site.Num_Ville AND T_Site.Num_Site = Site_ITC.Num_Site AND Site_ITC.Num_Commercial = Liste_Commercial.Num_Commercial AND T_Site.Num_Site =".$_GET["numSite"];
     
    		$resultat = $connexion->requeteSelection($requeteCoordonnees );
     
    		while($row = odbc_fetch_array($resultat))
    		{
    		echo $row['NomSite']."<BR>";
    		echo $row['CodePostal']." ".$row['NomVille']."<BR>";
    		echo "Effectif : ".$row['Effectif']."<BR>";
    		echo $row['NomITC']."<BR>";
     
     
    		}

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Bonjour, ta question n'est pas vraiment un problème php.

    En effet c'est uniquement ta mise en forme que tu veux changer non?
    Penche toi donc sur les tableau html et les styles css.
    Il existe d'excellents tutos sur dvp !

    Tu verras que le php et l'html se mélangent tres bien soit en arretant le script php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php 
    //blabla 
    ?>
     <table></table> 
    <?php
     //re bla bla 
    ?>
    Soit en faisant des echo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //blabla
    echo '<table>...</table>';
    //blabla
    Bonne continuation!

  3. #3
    Membre régulier Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Points : 78
    Points
    78
    Par défaut
    excuse moi, mais je n'ai pas compris comment je pourrai afficher ces deux lignes comme une seule, en concateinenant juste les valeurs pour la derniere cellule?

    les simples tableaux, je sais les ecrire avec php, mais ici, je bloque

  4. #4
    Membre régulier Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Points : 78
    Points
    78
    Par défaut
    pour etre plus claire :
    T_NomSite T_Ville T_CP T_Effectif T_Commercial
    Site1 ---- Paris ---- 75000 ---- 11 ---- MNP
    Site1 ---- Paris ---- 75000 ---- 11 ---- ADPT


    Nom Site : Site1 Ville : Paris Code Postal : 75000 Effectif : 11 Commerciaux : MNP, ADPT

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    en fait dans ton while il faut séparer les deux cas : nouvelle ville, ou ville deja vue
    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
     $ villeCourante = "";
    while($row = odbc_fetch_array($resultat))
    {
    // si nouvelle ville
    if($villeCourante != $row['NomVille'])
    {
    // memorise la ville
    $villeCourante = $row['NomVille'];
    // saute une ligne (pr passer apres les commerciaux)
    echo "<BR>";
    //affiche les infos
    echo $row['NomSite']."<BR>";
    echo $row['CodePostal']." ".$row['NomVille']."<BR>";
    echo "Effectif : ".$row['Effectif']."<BR>";
    echo $row['NomITC']."<BR>";
    echo "Commerciaux : " . $row['Commercial'];
    }
    else // ville deja affichée juste avant
    {
    echo ", " . $row['Commercial'];
    }
    }
    qqch de ce style devrait marcher (a adapter)

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Pour les commerciaux?
    Oui rien ne t'empeche de faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<table><tr></tr>....<tr><td>Les commerciaux</td><td>".$commercial1.",    ".$commercial2."</td></tr></table>";

  7. #7
    Membre régulier Avatar de Pingva
    Profil pro
    Inscrit en
    Août 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 190
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par koopajah Voir le message
    en fait dans ton while il faut séparer les deux cas : nouvelle ville, ou ville deja vue
    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
     $ villeCourante = "";
    while($row = odbc_fetch_array($resultat))
    {
    // si nouvelle ville
    if($villeCourante != $row['NomVille'])
    {
    // memorise la ville
    $villeCourante = $row['NomVille'];
    // saute une ligne (pr passer apres les commerciaux)
    echo "<BR>";
    //affiche les infos
    echo $row['NomSite']."<BR>";
    echo $row['CodePostal']." ".$row['NomVille']."<BR>";
    echo "Effectif : ".$row['Effectif']."<BR>";
    echo $row['NomITC']."<BR>";
    echo "Commerciaux : " . $row['Commercial'];
    }
    else // ville deja affichée juste avant
    {
    echo ", " . $row['Commercial'];
    }
    }
    qqch de ce style devrait marcher (a adapter)
    merci beaucoup pour ton aide
    je viens de faire qch qui ressemble a ta solution :
    (j'ai fait juste un compteur $cpt )
    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
     
    	$cpt = 0;
    		while($row = odbc_fetch_array($resultat))
    		{
    			if($cpt< 1)
    			{
    				echo "<TABLE border=0 width = '90%'>";
    				echo "<TR>";
    				echo "<TD align = 'center'  width = '75%'>";
     
    					echo "<SPAN class='AffichageTitre'>". $row['NomSite']."</SPAN><BR>";
    					echo "<SPAN class='AffichageTitre13'>". $row['CodePostal']." ".$row['NomVille']."</SPAN><BR>";
    					echo "<SPAN class='AffichageTitre13'>T&eacute;l. : ".$row['Tel_Standard']."</SPAN><BR>";
     
    				echo "</TD>";
    				echo "<TD align = 'right' width = '25%' >";
    					echo "<SPAN class='AffichageTitre13'>Effectif : ".$row['Effectif']."</SPAN><BR>";
    					echo "<SPAN class='AffichageTitre13'>ITC : ".$row['NomITC']."   "."</SPAN>";
    			}
    			else
    				echo "<SPAN class='AffichageTitre13'> ".$row['NomITC']."</SPAN>";
     
    			$cpt++;
    		}
    	}
    	echo "</TD>";
    		echo "</TR>";
    		echo "</TABLE>";
    merci encore, la solution de fayred me parait aussi interessant, je vais essayer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Tableau dynamique issue d'une requete
    Par JmL40 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2007, 21h37
  2. [Tableaux] Tableau associatif
    Par anzar dans le forum Langage
    Réponses: 3
    Dernier message: 24/10/2005, 12h17
  3. [Tableaux] Tableau compter récurence
    Par toflofr dans le forum Langage
    Réponses: 8
    Dernier message: 05/10/2005, 14h54
  4. [Tableaux] Tableau et resolution de l'ecran
    Par BK dans le forum Langage
    Réponses: 8
    Dernier message: 01/10/2005, 01h18
  5. [Tableaux] tableau dans un formulaire
    Par Elo13 dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2005, 18h28

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