Page 1 sur 2
Affichage de données venant d'une DB mysql dans 1 tablo html
Posté : 24 juin 2005, 11:22
par jimmy28
Bonjour à toutes et à tous,
voilà, j'aimerais tout simplement afficher le resultat d'une requete sql dans un tableau html.
J'arrive à faire ma requete (elle marche) en php, j'arrive aussi à créer un tableau html, mais lorsque j'imbrique mon code html dans mon code php, j'ai une erreur.
Voici mon bout de code :
<?php
requete...........
?>
code html....pour mon tableau
Comment puis-je proceder???
Posté : 24 juin 2005, 11:44
par mere-teresa
Quelle erreur est-ce ?
Posté : 24 juin 2005, 11:47
par jimmy28
Page blanche!!!!!!!!!!!!!
Mais seulement lorsque je mets mon code sous cette forme
<?php
requete..........
tbleau html.....
?>
Posté : 24 juin 2005, 12:01
par mere-teresa
Tu fais :
<?php
Mon traitement, requete tout ça...
?>
<html>
<head></head>
<body>
ton tableau HTML avec des <?php echo $mavariable; ?>
</body>
</html>
et tu enregistres ta page sous "nompage.php"
Posté : 24 juin 2005, 12:03
par castelli
alors sa marche jimmy??
(sinon mets nous ton code.. )
Posté : 24 juin 2005, 12:17
par jimmy28
Ok merci, effectivement ca marche, par contre, j'aimerais qu'il remplisse automatiquement mon tableau (si c possible avec une fonction) sinon je fais une routine moi meme du genre "do...loop".
Admettons : 1 base avec 3 champs et 10 enregistrements,
si je fais une requete "select * from table", tous mes enregistrements seront selectionnés mais je souhaite qu'il m'ajoute une ligne de tableau avec les données correspondantes à chaque enregistrement.....
j'espere que je suis assez clair!!!!
merci à tous de votre aide!!!c'est vraiment sympa
Posté : 24 juin 2005, 12:20
par jimmy28
Voici mon code pour etre plus précis:
<html>
<head>
<title>Votre Panier</title>
</head>
<body>
<?php
mysql_connect ($serveur,$ID,$MDP);
mysql_select_db ($DBname) or die ('ERREUR'.mysql_error());
$code=$_POST["code"];
$designation=$_POST["designation"];
$prix=$_POST["prix"];
$quantite=$_POST["quantite"];
$req="INSERT INTO articles (code,designation,prix,quantite) VALUES ('".$code."','".$designation."','".$prix."','".$quantite."')";
mysql_query($req) or die ('ERREUR '.mysql_error());
$tablo=mysql_query("SELECT * FROM articles");
$nblignes=mysql_num_rows(mysql_query("SELECT * FROM articles"));
echo $nblignes.' lignes';
while ($row=mysql_fetch_array($tablo, MYSQL_NUM)){
echo $row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ".$row[4]."<br>";
}
?>
<CENTER>
<TABLE width=80% border=10>
<TR>
<TD align=center width=10% BGCOLOR="$CCCCCC">Code Produit</TD>
<TD align=center width=70% BGCOLOR="$CCCCCC">Designation</TD>
<TD align=center width=10% BGCOLOR="$CCCCCC">Prix</TD>
<TD align=center width=10% BGCOLOR="$CCCCCC">Quantité</TD>
</TR>
<TR>
<TD align=center width=10%>Code Produit</TD>
<TD align=center width=70%>Designation</TD>
<TD align=center width=10%>Prix</TD>
<TD align=center width=10%>Quantité</TD>
</TR>
</TABLE>
</body>
</html>
Posté : 24 juin 2005, 12:47
par mere-teresa
echo $row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ".$row[4]."<br>";
Ben dans ton while tu construis une ligne de tableau HTML à chaque fois, tout simplement.
Avant ton while, tu initialises ta variable avec <table> et après le while tu finis le tableau avec </table>
$tablo_a_afficher = "<table>";
//posage de requete
while(/*traitement resultats*/){
$tablo_a_afficher .= "<tr><td>".$madonne."</td></tr>";
}
$tablo_a_afficher .= "</table>";
echo $tablo_a_afficher;
Posté : 24 juin 2005, 13:45
par jimmy28
voici ce que j'ai fait et ca ne marche pas, y aurait-il un probleme de synthaxe???
Posté : 24 juin 2005, 13:48
par jimmy28
désolé j'ai oublié le code:
$tablo="<table>";
$a=0;
while($a<$nbligne){
$tablo="<tr><td>".$a."</td></tr>";
$a=$a+1;
echo $a;
}
$tablo="</table>";
echo $tablo;
Posté : 24 juin 2005, 14:08
par mere-teresa
$tablo="<table>";
$a=0;
while($a<$nbligne){
$tablo="<tr><td>".$a."</td></tr>";
$a=$a+1;
echo $a;
}
$tablo="</table>";
echo $tablo;
Tu a mis = au lieu de .=
Posté : 24 juin 2005, 14:10
par jimmy28
je viens de corriger mon erreur et lorsque j'affiche "echo $tablo", il m'affiche la valeur 0.
Je ne comprends pas bien le principe de fonctionnement de ta routine
Posté : 24 juin 2005, 14:15
par zeus
- Tu n'as pas initialisé $nbligne au nombre de ligne de ta base
- c'est echo $a qui affiche 0
Posté : 24 juin 2005, 14:21
par jimmy28
ok merci.
Ceci dit, il m'affiche bien le contenu de $tablo mais pas du tout formaté.Hors je voudrais insérer ces donnees dans mon tableau html à la place des points rouges:
<CENTER>
<TABLE width=80% border=10>
<TR>
<TD align=center width=10% BGCOLOR="$CCCCCC">Code Produit</TD>
<TD align=center width=70% BGCOLOR="$CCCCCC">Designation</TD>
<TD align=center width=10% BGCOLOR="$CCCCCC">Prix</TD>
<TD align=center width=10% BGCOLOR="$CCCCCC">Quantité</TD>
</TR>
<TR>
<TD align=center width=10%>............</TD>
<TD align=center width=70%>.............</TD>
<TD align=center width=10%>.............</TD>
<TD align=center width=10%>..............</TD>
</TR>
</TABLE>
Posté : 24 juin 2005, 14:24
par mere-teresa
Regarde le HTML que tu obtiens
regarde à côté le HTML que tu voudrais obtenir...et ajuste ton code (si tu le comprends).
Petite question : pourquoi n'as-tu pas gardé les conditions de ton while initiales, s'il t'affichait tous les résultats ?
while ($row=mysql_fetch_array($tablo, MYSQL_NUM)){
//construction du tablo_a_afficher
}