Affichage de données venant d'une DB mysql dans 1 tablo html

Eléphanteau du PHP | 44 Messages

24 juin 2005, 11:22

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

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 juin 2005, 11:44

Quelle erreur est-ce ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 44 Messages

24 juin 2005, 11:47

Page blanche!!!!!!!!!!!!!

Mais seulement lorsque je mets mon code sous cette forme

<?php

requete..........

tbleau html.....

?>

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 juin 2005, 12:01

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"
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 450 Messages

24 juin 2005, 12:03

alors sa marche jimmy??

(sinon mets nous ton code.. )
Alone in the dark , I smile :D

Eléphanteau du PHP | 44 Messages

24 juin 2005, 12:17

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

Eléphanteau du PHP | 44 Messages

24 juin 2005, 12:20

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>

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 juin 2005, 12:47

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;
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 44 Messages

24 juin 2005, 13:45

voici ce que j'ai fait et ca ne marche pas, y aurait-il un probleme de synthaxe???

Eléphanteau du PHP | 44 Messages

24 juin 2005, 13:48

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;

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 juin 2005, 14:08

$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 .=
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 44 Messages

24 juin 2005, 14:10

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 juin 2005, 14:15

- Tu n'as pas initialisé $nbligne au nombre de ligne de ta base
- c'est echo $a qui affiche 0
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 44 Messages

24 juin 2005, 14:21

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>

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 juin 2005, 14:24

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
} 
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.