Probleme d'affichage de données à partir de la BD mysql [Résolu/Fermé]

Signaler
Messages postés
43
Date d'inscription
vendredi 8 novembre 2013
Statut
Membre
Dernière intervention
5 juin 2015
-
Messages postés
43
Date d'inscription
vendredi 8 novembre 2013
Statut
Membre
Dernière intervention
5 juin 2015
-
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:

<?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>

4 réponses

Messages postés
1292
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
221
Salut,

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.
Messages postés
3604
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
3 juillet 2020
959
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() :
<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
Messages postés
43
Date d'inscription
vendredi 8 novembre 2013
Statut
Membre
Dernière intervention
5 juin 2015

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.
Messages postés
3604
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
3 juillet 2020
959
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à !
Messages postés
3604
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
3 juillet 2020
959
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 :)
Messages postés
43
Date d'inscription
vendredi 8 novembre 2013
Statut
Membre
Dernière intervention
5 juin 2015

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)