mysql_fetch_array -- erreur --

Petit nouveau ! | 3 Messages

06 mars 2012, 20:34

Bonjour à tous !

Je me permets de poster mon soucis concernant un bout de code.
Après quelques recherche et/ou tutos, je n'arrive pas a régler mon soucis lors de ma requete SELECT,

dans laquelle je veux récupérer depuis ma BDD un formulaire qui a été préalablement rempli.
Ce formulaire apparait bien dans ma BDD pas de soucis.

Mais lorsque je souhaite récupéré les réponses des utilisateur sur une page X il me donne :

* Parse error: syntax error, unexpected T_VARIABLE in ..... line 5

je n'ai rien à la ligne n°5...

voici le bout de code :

///
<?php

$result = mysql_query("SELECT id, pseudo, FROM mabase");



while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 

{
   printf("ID : %s  PSEUDO : %s", $row["id"], $row["pseudo"]);
}

mysql_free_result($result);

?>

quelqu'un pour m'éclairer sil vous plait ? ;)

Amicalement,

Fouz.

Eléphanteau du PHP | 17 Messages

06 mars 2012, 20:50

Tu as fais une erreur, si ton nom de base de données c'est "mabase" alors il faut mettre ton nom de table (ex : "matable") car normalement tu te connectes avant à ta base "mabase".
$result = mysql_query("SELECT id, pseudo, FROM matable");

ViPHP
xTG
ViPHP | 7331 Messages

06 mars 2012, 21:11

Il manque aussi le code de connexion à la BDD.
Es-tu sûr que ce code contient la ligne 5 ?
Car il n'y a aucune erreur de syntaxe là dedans.

Petit nouveau ! | 3 Messages

06 mars 2012, 21:30

Il manque aussi le code de connexion à la BDD.
Es-tu sûr que ce code contient la ligne 5 ?
Car il n'y a aucune erreur de syntaxe là dedans.
En fait la Connexion à la BDD est géré par une autre page " manager " .
La ligne 5 est vide, il y a un espace en faite ( saut de ligne)

Mammouth du PHP | 2278 Messages

06 mars 2012, 21:46

<?php
$result = mysql_query("SELECT id, pseudo, FROM mabase");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
   printf("ID : %s  PSEUDO : %s", $row["id"], $row["pseudo"]);
}
mysql_free_result($result);
?>
1) le message d'erreur complet aurait érté bienvenu.
2) Erreur évidente signalée déjà avant moi sur la requête. Une solution facilitant le contrôle serait déja:
$requete = "SELECT id, pseudo, FROM mabase";
print "<br>ma requete $requete";
$result = mysql_query($requete);
3) Il est vraisemblable que cette requête ne donne rien, car $result n'est pas une ressource.
vérification possible par
if (is_resource($result))
{
    print "result resulte";
}
else
{
   print "result n'est pas une ressource";
}
while comme initialement prévu....
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
AB
ViPHP | 5818 Messages

06 mars 2012, 22:14

Code : Tout sélectionner

"SELECT id, pseudo, FROM mabase"
faut pas de virgule devant le FROM
$query = "SELECT id, pseudo FROM mabase";

Petit nouveau ! | 3 Messages

07 mars 2012, 17:17

Merci.

Du coup j'ai completement revu la conception du code et me suis dirigé vers celui ci :

<?php

$requete='SELECT id,pseudo,email from ge_questionnaire' ;
$resultat=mysql_query($requete);


echo "<table border=\"1\">";
//entete du tableau

echo"<tr>";
echo "<th>ID</th>";
	echo "<th>pseudo</th>";
echo "<th>email</th>";
	echo "<th>Q1</th>";
echo "<th>Q2</th>";
	echo "<th>Q3</th>";
echo "</tr>";

//fin requete.

while ($row=mysql_fetch_array($resultat))
{

echo"<tr>";
	echo "<td>".$row['ID']."</td>";
	echo "<td>".$row['pseudo']."</td>";
	echo "<td>".$row['email']."</td>";
	echo "<td>".$row['Q1']."</td>";
	echo "<td>".$row['Q2']."</td>";
	echo "<td>".$row['Q3']."</td>";
	
}



echo "</table>";



?>

Il récupere bien le pseudo, mais le reste non.

:shock:

16h22 : Rien dit j'avais omis d'indiquer la syntaxe exact de ma bdd ;)

* 17h00 : j'arrive à tout récupérer sauf : email .

Qui s'appel pourtant bien 'email' dans ma bdd ...

une idée ?

Eléphant du PHP | 267 Messages

07 mars 2012, 18:19

il faut que tu fermes le <tr> dans ta boucle while

dix2

Eléphanteau du PHP | 37 Messages

07 mars 2012, 22:06

es que tu as bien vérifier que dans ta base c'est 'email' et non 'Email'