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

PHP & Base de données Discussion :

Afficher les résultats de différentes requêtes dans un même tableau <table>


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2014
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 160
    Par défaut Afficher les résultats de différentes requêtes dans un même tableau <table>
    Bonjour à tous,
    Je cherche une solution pour afficher les résultats de plusieurs requêtes dans un tableau, sachant que (par ex) le résultat de la req1 est de 1 lignes et la req2 (2 lignes) et la req3 (3 lignes) je cherche comment afficher les résultats dans un tableau (3 colonnes Max lignes) .
    Dans mon exemple je souhaite avoir ça :
    Nom : Capture.JPG
Affichages : 249
Taille : 20,4 Ko
    Mais ce que j'ai c'est ça :
    Nom : Capture1.JPG
Affichages : 223
Taille : 21,0 Ko

    Mon 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php
    	$intervntET=$conn->query("SELECT * FROM intervenants_e");
            $ForfaitET=$conn->query("SELECT * FROM forfaits_et");
    	$PrixET=$conn->query("SELECT * FROM prix_e");
    ?>
    	<table class="table table-bordered table-striped">
    		<thead>
    			<th>Etudes
    				<tr>
    					<th>
    						Intervenants
    					</th>
    					<th>
    						Forfaits
    					</th>
    					<th>
    						Prix/U
    					</th>
     
    				</tr>
    			</th>
    		</thead>					
         <tbody>
     
    <?php 
     
    						/*		while($resintrvE=mysqli_fetch_object($intervntET))
    								{
    									echo"<tr><td>$resintrvE->libelle_intrv_e</td>";
    								}
    									while($resforfE=mysqli_fetch_object($ForfaitET))
    								{
    									echo "<td>$resforfE->libelle_e</td>";
    								}
    									while($resprixE=mysqli_fetch_object($PrixET))
    								{
    									echo "<td>$resprixE->prix_etu</td></tr>";
    								}	*/	   
     
    ?>
    						</tbody>
    					</table>

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    Déjà je regrouperai les requêtes; sinon le résultat risque de ne pas vouloir dire grand chose, les colonnes n'étant pas liées.


    Ensuite ton problème se résume à ne pas afficher une valeur si la cellule du dessus contient la même.

    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
     
    <table border="1">
    	<?php 
    // donnees de test
    $lignes = array(
    	array('colonne1'=>'aa', 'colonne2'=>'bb1', 'colonne3'=>'cc1'),
    	array('colonne1'=>'aa', 'colonne2'=>'bb2', 'colonne3'=>'cc2'),
    	array('colonne1'=>'aa', 'colonne2'=>'bb2', 'colonne3'=>'cc3')
    );
     
    $ancienne_valeur_colonne_1 = '';
    $ancienne_valeur_colonne_2 = '';
     
    foreach ($lignes as $ligne) { ?>
    	<tr>
    		<td>
    			<?php echo ($ancienne_valeur_colonne_1!=$ligne['colonne1'])?$ligne['colonne1']:''; $ancienne_valeur_colonne_1=$ligne['colonne1']; ?>
    		</td>
    		<td>
    			<?php echo ($ancienne_valeur_colonne_2!=$ligne['colonne2'])?$ligne['colonne2']:''; $ancienne_valeur_colonne_2=$ligne['colonne2']; ?>
    		</td>
    		<td>
    			<?php echo $ligne['colonne3']; ?>
    		</td>
    	</tr>
    	<?php } ?>
    </table>

  3. #3
    Membre confirmé
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2014
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 160
    Par défaut
    Merci pour l'effort scvo.0ne !
    J'ai essayé de transformer ton code pour l'utiliser avec mes 3 requêtes mais j'arrive pas (bcp des erreurs)
    Ensuite ton problème se résume à ne pas afficher une valeur si la cellule du dessus contient la même.
    Précisément je veux juste afficher le résultats des 3 requêtes dans un tableau bien dessiné sans doublons sans cellules déformés !
    Mon niveau de langue n'aide pas à éclaircir les choses !
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php
    	$intervntET=$conn->query("SELECT * FROM intervenants_e");
    // Résultats : interv1 - interv2 - interv3
            $ForfaitET=$conn->query("SELECT * FROM forfaits_et");
    // Résultats : forf1 - forf2 
    	$PrixET=$conn->query("SELECT * FROM prix_e");
    // Résultats : prix1 - prix2 - prix3 - prix4
    ?>
     
    <table class="table table-bordered table-striped">
    						<thead>
    						<th>Etudes
    							<tr>
    								<th>
    									Intervenants
    								</th>
    								<th>
    									Forfaits
    								</th>
    								<th>
    									Prix/U
    								</th>
     
    							</tr>
    						</th>
    						</thead>
    						<tbody>
    						<tr>
    						<td>interv1</td>
    						<td>forf1</td>
    						<td>prix1</td>
    						</tr>
    						<tr>
    						<td>interv2</td>
    						<td>forf2</td>
    						<td>prix2</td>
    						</tr>
    						<tr>
    						<td>interv3</td>
    						<td></td>
    						<td>prix3</td>
    						</tr>
    						<tr>
    						<td></td>
    						<td></td>
    						<td>prix4</td>
    						</tr>
     
    						</tbody>
    					</table>
    Tu peux m'aider à afficher le résultat dans un tableau comme suit :

    Nom : Capture.JPG
Affichages : 228
Taille : 24,4 Ko

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    Tant que tu auras 3 requêtes ca n'ira pas.

    Tu peux nous donner les colonnes de tes 3 tables ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voici une solution :

    Chaque résultat de requête est sous forme d'un array.

    Pour l'exemple :
    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
    <?php
    $interv_array = array(
    	'interv1',
    	'interv2',
    	'interv3',
    	);
    $forfait_array = array(
    	'forfait1',
    	'forfait2',
    	);
    $prix_array = array(
    	'prix1',
    	'prix2',
    	'prix3',
    	'prix4',
    	'prix5',
    	'prix6',
    	);
    Chaque requête peut renvoyer un nombre différent de résultats.
    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
    <?php
    // On les compte
    $interv_count	= count($interv_array);
    $forfait_count	= count($forfait_array);
    $prix_count	= count($prix_array);
    // Le nombre de ligne sera le max des 3
    $nbre_ligne	= max( $interv_count, $forfait_count, $prix_count );
     
    echo '<table>';
    for( $k=0; $k<$nbre_ligne; $k++)
    {
    	echo '	<tr>';
    	echo '		<td>'; if($k<$interv_count) echo $interv_array[$k]; echo '</td>'; 
    	echo '		<td>'; if($k<$forfait_count) echo $forfait_array[$k]; echo '</td>'; 
    	echo '		<td>'; if($k<$prix_count) echo $prix_array[$k]; echo '</td>'; 
    	echo '	</tr>';
    }
    echo '</table>';
    ?>
    Cela dit, je ne vois pas l'intérêt de mettre dans la même table 3 colonnes qui n'ont pas de rapport entre elles...

  6. #6
    Membre confirmé
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2014
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 160
    Par défaut
    Citation Envoyé par scvo.0ne Voir le message
    Tant que tu auras 3 requêtes ca n'ira pas.

    Tu peux nous donner les colonnes de tes 3 tables ?
    Prix_e :
    id_prix
    libelle_prix

    Intervenants_e:
    id_intrv
    libelle_intrv

    Forfait_e :
    id_forfait
    libelle_forfait

  7. #7
    Membre confirmé
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2014
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 160
    Par défaut
    jreaux62
    ___

    Merci pour ton effort, alors j'ai testé ton code et ça marche, mais je sais pas comment récupérer les résultats des requêtes dans array (a,b,c) !!
    Cela dit, je ne vois pas l'intérêt de mettre dans la même table 3 colonnes qui n'ont pas de rapport entre elles...
    ça sera une page de paramètres (Pour ajouter/modifier/supprimer) Prix ou forfait ou intervenant ! Si je mets 3 tableau la présentation sera un peu bizarre !!

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/04/2012, 15h39
  2. Réponses: 2
    Dernier message: 14/01/2012, 21h33
  3. Réponses: 3
    Dernier message: 26/09/2011, 21h27
  4. Afficher les résultats d'une requête dans un tableau
    Par zoro007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/08/2010, 09h30
  5. Réponses: 6
    Dernier message: 18/09/2007, 17h10

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