Probleme d'affichage de données à partir de la BD mysql
Résolu
mevane
Messages postés
43
Date d'inscription
Statut
Membre
Dernière intervention
-
mevane Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
mevane Messages postés 43 Date d'inscription Statut Membre Dernière intervention -
chers amis,
j'ai un veritable problème: lorsque j'affiche les informations de ma base de données mysql dans ma page php,la premiere ligne s'affiche mais les données sont coller-coller(sans espace) et les autres lignes ne s'affiche pas.voici mon code:
j'ai un veritable problème: lorsque j'affiche les informations de ma base de données mysql dans ma page php,la premiere ligne s'affiche mais les données sont coller-coller(sans espace) et les autres lignes ne s'affiche pas.voici mon code:
<?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,Capital,Secteur_activite,Date_de_demarrage,Numero_RC,Numero_CC,Adresse_geographique,
Contact_telephonique,Email_mandataire,CA_N-1,Eff_N-1,MS_N1,Lien_economique,
Filiale1,Periodicite,Mode_de_paiement from Club_afr";
//execution de la requete
$exe=mysql_query($sql) or die (mysql_error());
?>
<h1 align="center">LISTE DES DEMANDES D'ADHESION </h1>
<TABLE >
<TR>
<TH>Denomination</TH>
<?php
while ($test=mysql_fetch_array($exe,MYSQL_ASSOC))
{
echo '<td >'.$test["Denomination"].'</td>';
}
?>
</TR>
<TR>
<TH>Forme juridique</TH>
<?php
while ($test=mysql_fetch_array($exe,MYSQL_ASSOC))
{
echo '<td >'.$test["Forme_juridique"].'</td>';
}
?>
</TR>
<br />
</TABLE>
A voir également:
- Probleme d'affichage de données à partir de la BD mysql
- Fuite données maif - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Supprimer les données de navigation - Guide
- Scan bd ✓ - Forum Loisirs / Divertissements
- Comment faire une recherche à partir d'une photo - Guide
4 réponses
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.
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
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.
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)