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

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
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.
0
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
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
0
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
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.
0
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
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à !
0
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
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 :)
0
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
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)
0