Probleme d'affichage de données à partir de la BD mysql
Résolu/Fermé
mevane
Messages postés
43
Date d'inscription
vendredi 8 novembre 2013
Statut
Membre
Dernière intervention
5 juin 2015
-
11 nov. 2013 à 09:41
mevane Messages postés 43 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 5 juin 2015 - 11 nov. 2013 à 11:15
mevane Messages postés 43 Date d'inscription vendredi 8 novembre 2013 Statut Membre Dernière intervention 5 juin 2015 - 11 nov. 2013 à 11:15
A voir également:
- Probleme d'affichage de données à partir de la BD mysql
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Adèle consulte son compte sur le site de sa banque et obtient l'affichage ci-dessous. complétez le texte. - Forum Facebook
- Célia doit nettoyer le tableau ci-dessous pour l’ajouter à la base de données de son entreprise. les données sont ensuite traitées automatiquement. quelles sont les 4 cellules qui risquent de poser problème ? ✓ - Forum Excel
- La zone de données passée à un appel système est insuffisante - Windows 11
- W.i.t.c.h. bd intégrale pdf ✓ - Forum Loisirs / Divertissements
4 réponses
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
11 nov. 2013 à 10:33
11 nov. 2013 à 10:33
Salut,
Tester comme ça pour voir :
Note : j'ai raccourcis la requête puisque votre code n'utilise que 2 champs en sortie.
Tester comme ça pour voir :
<?php
//connexion au serveur de base de donnees
$connect=mysql_connect('localhost','','');
//selection de la base de donnees
$select_db=mysql_select_db('adhesion',$connect);
//requete
$sql="SELECT Denomination,Forme_juridique ORDER BY Denomination ASC";
//execution de la requete
$exe=mysql_query($sql) or die (mysql_error());
?>
<h1 align="center">LISTE DES DEMANDES D'ADHESION </h1>
<table style="width: 100%;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>Denomination </td>
<td>Forme juridique </td>
</tr>
<?php
while($test = mysql_fetch_array($exe,MYSQL_ASSOC)){
echo '
<tr>
<td>'.$test["Denomination"].'</td>
<td>'.$test["Forme_juridique"].'</td>
</tr>
'};
?>
</tbody>
</table>
Note : j'ai raccourcis la requête puisque votre code n'utilise que 2 champs en sortie.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
Modifié par Reivax962 le 11/11/2013 à 11:04
Modifié par Reivax962 le 11/11/2013 à 11:04
Bonjour,
Pour ce qui est de l'apparence toute collée de tes données, tu as plusieurs possibilités.
1 - Rajouter des bordures à la table : remplace <table> par <table border='1'>
2 - Laisser de l'espace à l'intérieur de chaque cellule : remplace les <td> par <td style='padding: 5px;'>
Pour ce qui est du fait que seule la première ligne s'affiche.
Il faut comprendre ce que fait mysql_fetch_array.
Ton résultat de requête, $exe, contient un pointeur interne qui indique quelle position de la liste des résultats est accessible.
Quand tu fais mysql_fetch_array, il fait avancer ce pointeur d'un cran. Si le pointeur est arrivé au bout, mysql_fetch_array renvoie FALSE (ce qui permet de sortir de la boucle WHILE).
Quand tu fais une boucle sur mysql_fetch_array, il parcourt donc tous les résultats de la requête jusqu'à arriver au bout. Mais une fois au bout... il y reste ! Donc les boucles suivantes sortent tout de suite et ne sont jamais parcourues.
Pour cette raison, il est plus naturel en PHP d'afficher les résultats d'une requête par ligne, et non par colonne.
1 - Affichage en colonne
Ceci dit, si tu tiens à ton affichage par colonnes, tout n'est pas perdu : il est possible de ramener le pointeur d'un résultat à sa position initiale avec la fonction mysql_data_seek($exe, 0).
Il faut le placer juste avant ton deuxième while() :
2 - Affichage en ligne
Pour un affichage en ligne, on ne fait qu'une seule boucle while, et on crée une ligne à chaque fois :
En espérant t'avoir éclairé,
Xavier
Pour ce qui est de l'apparence toute collée de tes données, tu as plusieurs possibilités.
1 - Rajouter des bordures à la table : remplace <table> par <table border='1'>
2 - Laisser de l'espace à l'intérieur de chaque cellule : remplace les <td> par <td style='padding: 5px;'>
Pour ce qui est du fait que seule la première ligne s'affiche.
Il faut comprendre ce que fait mysql_fetch_array.
Ton résultat de requête, $exe, contient un pointeur interne qui indique quelle position de la liste des résultats est accessible.
Quand tu fais mysql_fetch_array, il fait avancer ce pointeur d'un cran. Si le pointeur est arrivé au bout, mysql_fetch_array renvoie FALSE (ce qui permet de sortir de la boucle WHILE).
Quand tu fais une boucle sur mysql_fetch_array, il parcourt donc tous les résultats de la requête jusqu'à arriver au bout. Mais une fois au bout... il y reste ! Donc les boucles suivantes sortent tout de suite et ne sont jamais parcourues.
Pour cette raison, il est plus naturel en PHP d'afficher les résultats d'une requête par ligne, et non par colonne.
1 - Affichage en colonne
Ceci dit, si tu tiens à ton affichage par colonnes, tout n'est pas perdu : il est possible de ramener le pointeur d'un résultat à sa position initiale avec la fonction mysql_data_seek($exe, 0).
Il faut le placer juste avant ton deuxième while() :
<TH>Forme juridique</TH>
<?php
mysql_data_seek($exe, 0);
while ($test=mysql_fetch_array($exe,MYSQL_ASSOC))
{
echo '<td >'.$test["Forme_juridique"].'</td>';
}
?>
2 - Affichage en ligne
Pour un affichage en ligne, on ne fait qu'une seule boucle while, et on crée une ligne à chaque fois :
<TABLE >
<TR>
<TH>Denomination</TH>
<TH>Forme juridique</TH>
</TR>
<?php
while ($test=mysql_fetch_array($exe,MYSQL_ASSOC))
{
echo '<tr>';
echo '<td >'.$test["Denomination"].'</td>';
echo '<td >'.$test["Forme_juridique"].'</td>';
echo '</tr>';
}
?>
</TABLE>
En espérant t'avoir éclairé,
Xavier
mevane
Messages postés
43
Date d'inscription
vendredi 8 novembre 2013
Statut
Membre
Dernière intervention
5 juin 2015
Modifié par mevane le 11/11/2013 à 10:59
Modifié par mevane le 11/11/2013 à 10:59
merci pour ta reponse mais ce n'est pas le resultat ke j'attendais :voici un peu ceke je veux:
DENOMINATION valeur1 valeur1 valeur1 valeur1 valeur1 valeur1
FORME JURIDIQUE valeur2 valeur2 valeur2 valeur2 valeur2 valeur2
CAPITAL valeur3 valeur3 valeur3 valeur3 valeur3 valeur3
alors que le code ke toi tu me donnes va s'afficher de cette maniere:
DENOMINATION FORME JURIDIQUE CAPITAL
valeur1 valeur2 valeur3
valeur1 valeur2 valeur3
valeur1 valeur2 valeur3
j'espère avoir été tres expressif....merci de m'avoir repondu et j'attends ta reponse impatiemment.
DENOMINATION valeur1 valeur1 valeur1 valeur1 valeur1 valeur1
FORME JURIDIQUE valeur2 valeur2 valeur2 valeur2 valeur2 valeur2
CAPITAL valeur3 valeur3 valeur3 valeur3 valeur3 valeur3
alors que le code ke toi tu me donnes va s'afficher de cette maniere:
DENOMINATION FORME JURIDIQUE CAPITAL
valeur1 valeur2 valeur3
valeur1 valeur2 valeur3
valeur1 valeur2 valeur3
j'espère avoir été tres expressif....merci de m'avoir repondu et j'attends ta reponse impatiemment.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
11 nov. 2013 à 11:01
11 nov. 2013 à 11:01
Relis bien mon message :)
Il y a une section pour conserver ton affichage en colonne :)
Que j'ai certes éditée entre temps pour mettre du code tout cuit (et apparemment j'ai bien fait, puisqu'on dirait que tu vas directement au code ;) ), mais la réponse y était déjà !
Il y a une section pour conserver ton affichage en colonne :)
Que j'ai certes éditée entre temps pour mettre du code tout cuit (et apparemment j'ai bien fait, puisqu'on dirait que tu vas directement au code ;) ), mais la réponse y était déjà !
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
11 nov. 2013 à 11:03
11 nov. 2013 à 11:03
Ah désolé, je n'avais pas vu qu'une première réponse était arrivée pendant que je tapais la mienne... Et j'ai l'impression que tu réponds à celle-là et pas à la mienne.
Donc lis bien la mienne :)
Donc lis bien la mienne :)
mevane
Messages postés
43
Date d'inscription
vendredi 8 novembre 2013
Statut
Membre
Dernière intervention
5 juin 2015
Modifié par mevane le 11/11/2013 à 12:14
Modifié par mevane le 11/11/2013 à 12:14
XAVIER, je te dis merci merci merci et mille fois merci car xa marche;
j'ai tro galeré pour trouver xa et je suis très heureux ke tu m'ais aider.
je ne suis pas homosexuel mais permet moi de te dire ke je t'aime.
tu m'enlève une épine du pieds.encore merci et Dieu puisse taider dans tout ce ke tu entreprendras(si tai croyant bien sur)
j'ai tro galeré pour trouver xa et je suis très heureux ke tu m'ais aider.
je ne suis pas homosexuel mais permet moi de te dire ke je t'aime.
tu m'enlève une épine du pieds.encore merci et Dieu puisse taider dans tout ce ke tu entreprendras(si tai croyant bien sur)