Requête PHP pour interroger une base MySQL

Fermé
Senorita - 29 mai 2008 à 13:24
 Senorita - 29 mai 2008 à 14:15
Bonjour,
Je souhaite créer des formulaires d'interrogation pour ma base de données située dans My SQL.
J'ai à peu près réussi à faire fonctionner le tout, mais j'aimerais que les résultats apparaissent sous la forme d'un tableau..Mais je connais pas le code pour faire ca!!


Voilà ce que j'ai fait :

$bd=mysql_connect("localhost","root","");
mysql_select_db("radio",$bd);
$requete="SELECT Code_Em, Intitule, Genre, Langue FROM emission";
$resultat=mysql_query($requete,$bd);
if ($uneligne=mysql_fetch_array($resultat)) {
echo "<h1> Résultats </h1>";
echo "<table>";

do {
echo "<tr> $uneligne["Code_Em"]</tr>";
echo "<tr> $uneligne["Intitule"]</tr>";
echo "<tr> $uneligne["Genre"]</tr>";
echo "<tr> $uneligne["Langue"]</tr>";
}

while ($uneligne=mysql_fetch_array($resultat));
echo "</table>";
}

Et voilà le super message d'erreur qui apparait :
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\program files\easyphp1-8\www\formulaire\emission.php on line 20

Merci beaucoup pour votre aide!!
A voir également:

4 réponses

macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
29 mai 2008 à 13:28
Bonjour.

En php, on n'utilise pas la syntaxe DO...WHILE mais simplement WHILE (condition) {...}

echo "<table>";

while ($uneligne=mysql_fetch_array($resultat)) {
echo "<tr> $uneligne["Code_Em"]</tr>";
echo "<tr> $uneligne["Intitule"]</tr>";
echo "<tr> $uneligne["Genre"]</tr>";
echo "<tr> $uneligne["Langue"]</tr>";
}

echo "</table>";

Ca devrait aller mieux ;-)
0
Bonjour!
Wouah la réponse rapide! Merci :-)
EUh mais en fait, je viens de l'enlever mais ca marche toujours pas....le même message d'erreur aparait!
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
29 mai 2008 à 13:41
Tu peux donner ton code complet, ou au moins indiquer où se trouve la ligne 20 ?

Au passage : Si j'ai bien compris le fonctionnement du mysql_fetch_array, tu vas zapper le premier résultat.

Essaye plutôt :

$prems = true;
while ($uneligne=mysql_fetch_array($resultat)) {
   if ($prems) {
      $prems = false;
      echo "<h1> Résultats </h1><table>";
   }
   echo "<td>";
   // Là, tes echo sur tes champs
   echo "</td>";
}

A moins que quelqu'un n'ait une meilleure solution ?
0
Ah mince oui bien sur! Pardon!
Attends je donne tout :
<html>
<body>
<?php
/*************************************************
REFERENCE AUX DEFINITIONS DE CONSTANTES POUR MYSQL
*************************************************/
require("connect.php");
/*************************************************
* LE TRAITEMENT A PROPREMENT DIT
*************************************************/
$bd=mysql_connect("localhost","root","");
mysql_select_db("radio",$bd);
$requete="SELECT Code_Em, Intitule, Genre, Langue FROM emission";
$resultat=mysql_query($requete,$bd);
if ($uneligne=mysql_fetch_array($resultat)) {
echo "<h1> Résultats </h1>";
echo "<table>";

{
echo "<tr>; $uneligne["Code_Em"];</tr>";
echo "<tr>; $uneligne["Intitule"];</tr>";
echo "<tr>; $uneligne["Genre"];</tr>";
echo "<tr>; $uneligne["Langue"];</tr>";
}

while ($uneligne=mysql_fetch_array($resultat));
echo "</table>";
}
?>
</body>
</html>

(la ligne 20 est celle là : echo "<tr>; $uneligne["Code_Em"];</tr>"; )
Jvais essayer avec ce que tu m'as donné.

Et au fait : le fonctionnement du mysql_fetch_array, je n'y comprends rien! J'ai recopié bêtement mon support de cours...

Merci !
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
29 mai 2008 à 13:56
Au temps pour moi...

On peut utiliser la syntaxe DO {actions} WHILE (condition);

Toute la partie après le IF me semble donc correcte, au niveau de la logique...

Par contre :
echo "<tr>; $uneligne["Code_Em"];</tr>";

Ca plante ici : l'interpréteur php lit echo "<tr>; $uneligne[", et il ne comprend pas la suite (il attend un . ou un ; ou un ,)

Essaye ça, pour toutes tes lignes :
echo "<tr>".$uneligne["Code_Em"]."</tr>";
0
Wouh ca marche! Super!
Je vais quand même faire mon boulet :( : ya qu'un seul résultat qui apparait (le premier de la liste), et j'aimerais que tous les résultats apparaissent (tu vois, tous les résultats de la table).

Mais comment faire?

En tout cas, ca marche, c'est super.
0