Suite à une requête SQL je cherche a intégrer les résultats dans un tableau et ce tableau est construit dynamiquement en fonction du nombre de colonnes demandées dans la requête et du nombre de lignes du résultat (pour être universel en fonction de la requete).
La 1ère ligne qui affiche le nom des attributs de la BDD est ok mais je n'arrive pas à obtenir les lignes de résultats alignées aux colonnes correspondantes, je n'ai même rien du tout en résultat. Je pense que le pbm est dans la boucle While mais ou ?? Merci si vous pouvez m'aider:
L'affichage que j'obtiens est celui-ci:
Et le code est de la page entière est celui ci:1
6
NomML PrenomML EmailML TelBurML TelPortML InterimML
TEST Page HTML
<html>
<body>
<?php
// Echo de test: echo "test echo de Rech1_ZoneGestion.php".'<br>';
include ("ConnectBDD.php");
if ($_POST["varBatiment"]) // vérifie que c'est bien la variable d'environnement POST qui est envoyée alors on peut exectuer la suite
//car les variables peuvent provenir de données "pirates" par exemple....
{
$varBatiment=$_POST["varBatiment"];
//echo de test: echo $varBatiment;
$query="SELECT NomML,PrenomML,EmailML,TelBurML,TelPortML,InterimML FROM mlocal,zone WHERE Zone.NumZone=mlocal.NumZoneML AND Batiment='$varBatiment'";
$result=mysql_query($query);
if(!$result){
echo "La requete de Recherche1_ZoneGestion.php a echouée".mysql_error();
exit();
}
/////////// Creation du Tableau avec les valeurs obtenues de la BDD/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
$nbreLignes=mysql_num_rows($result);// On compte le nombre de lignes du résultat pour faire autant de lignes dans la tableau
echo $nbreLignes.'<br>';
$nbreChamps=mysql_num_fields($result); // On compte le nombre de champs dans la BDD ( le nbre de colonnes)
echo $nbreChamps.'<br>';
$tableau='<table border=1>'; // Construction du début du tableau
// On va créér la 1ère ligne du tableau avec le nom des colonnes de la table obtenue par la requete
$tableau=$tableau.'<tr>';
for ($j=0;$j<=$nbreChamps;$j++)// Sur la 1ère ligne on va insèrer le nom des champs de la table
{
$Champ=mysql_fetch_field($result);
$NomChamp[$j]=$Champ->name; // recupération du nom des champs da la table obtenue après la requete
$tableau=$tableau.'<td>'.$NomChamp[$j].'</td>';
}
$tableau=$tableau.'</tr>';// On vient de créér la 1ère ligne avec le nom des champs
// Création du tableau des résultats
// A chaque ligne "ligneResult" on va insérer les valeurs des colonnes "j" récupérées dans la BDDD
while ($ligneResult=mysql_fetch_assoc($result))// On charge le pointeur de la ligne de résultat.
//mysql_fetch_assoc permet d'adresser le tableau à partir de nom du champ de la colonne.
{
// ne sert plus car il y a le while: for ($i=0;$i<=$nbreLignes;$i++) // On boucle sur la i ème ligne
//{
$tableau=$tableau.'<tr>';
for ($j=0;$j<=$nbreChamps;$j++) // On boucle sur la j ème colonnes
{
$Champ=mysql_fetch_field($result);
$NomChamp[$j]=$Champ->name; // recupération du nom des champs da la table
{
$tableau=$tableau.'<td>'.$ligneResult[$NomChamp[$j]].'</td>';// On créé toutes les cellules dans la même ligne
}
}
$tableau=$tableau.'</tr>';// Fin de la i ème ligne complète
//}
}
$tableau=$tableau.'</table>';
echo $tableau; // envoi du tableau complet
/*while ($ligne=mysql_fetch_array($result))
{
echo $ligne['NomML'].'<br>';
echo $ligne['PrenomML'].'<br>';
echo $ligne['EmailML'].'<br>';
echo $ligne['TelBurML'].'<br>';
echo $ligne['InterimML'].'<br>';
}
*/
mysql_free_result ($result);
mysql_close($connect_serveur);
}
?>
<br>TEST Page HTML
</body>
</html>
[/php]