Erreur de syntaxe MYSQL [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
31 juillet 2007
-
Messages postés
4
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
31 juillet 2007
-
Bonjour à tous, voilà je débute en PHP/MYSQL et lors de la réalisation d'un certain TP je tombe sans cesse sur le message d'erreur suivant: 'erreur de syntaxe pres de '5' à ligne 1', ce qui me tracasse c le fait de ne pouvoir localiser l'erreur sinon ça se serait plus evident, si vous pouvez m'expliquer ce que 'ligne1' et '5' signifient (est-ce cela à rapport avec un mysql_query specifique) vous me serrez d'une grande aide. Merci encore pour votre interet et bonne soirée.
PS: j'utilise tout le temps des die (mysql_error()) mais ils semblent peu explicite quand à la situation de l'erreur.

3 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 706
Salut

Pourrais-tu nous mettre le code ?

Sinon l'interpréteur dit qu'il y a une logiciel à la première ligne de ton programme
Messages postés
4
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
31 juillet 2007

Bonjour, j'ai pas bien compris mais je t' envois le code quand même:
<html><body>
<p>Voici mon livre d'or<br/>Veuillez me laisser un message<br/></p>
<form method="post">
<p>
Pseudo: <input type="text" name="pseudo" tabindex="10"/><br/>
Message: <textarea name="message" tabindex="20"></textarea> <br/>
<input type="submit" tabindex="30"/><br/>
</p>
</form>

<?php
//ajouter à la base
if(isset($_POST['pseudo']) and isset($_POST['message']))
{
if($_POST['pseudo']!=null and $_POST['message']!=null)
{
$pseudo=htmlentities($_POST['pseudo'], ENT_QUOTES);
$message=htmlentities($_POST['message'], ENT_QUOTES);

mysql_connect("localhost","root","");
mysql_select_db("test");
mysql_query("insert into livre_dor values('','$pseudo','$message')") or die (mysql_error());
mysql_close();
}
}


//calculer le nombre d'entrees ds le livre d'or
mysql_connect("localhost","root","");
mysql_select_db("test");

$resultat=mysql_query("select count(*) as entrees from livre_dor") or die (mysql_error());
$tot=mysql_fetch_array($resultat);
$total=$tot['entrees'];


//jusqu'ici ça marche nickel

//afficher le nombre de page en forme de lien
$messages_par_page=5;
$pages=ceil($total/$messages_par_page);
echo 'Page: ';
for ($i=1; $i<$pages; $i++)
{

echo'<a href="revision.php?numero_page='.$i.'">'.$i.'</a>';
}
echo '<br/>';

//affiher les $messages_par_page dans chaque page

if(isset($_GET['numero_page']))
{
$np=$_GET['numero_page'];
}
else
{
$np=1;
}
$pp=($pages+1)-$np;
$premier_message_a_afficher=$pp*$messages_par_page;

$res=mysql_query('select * from livre_dor limit'.$premier_message_a_afficher.', '.$messages_par_page) or die (mysql_error());
while($affichage=mysql_fetch_array($res))
{
echo $affichage['pseudo'].' a dit: '.$affichage['message'].'<br/>';
}

mysql_close();

?></body></html>

Messages postés
4
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
31 juillet 2007

Bonjour, me revoilà
j'ai refait le code, enfin le même mais je l'ai simplifié (j'ai recréé la table mais cette fois avec un seul champ le pseudo'et l'ID' bien sur, pour faire simple et trouver l'erreur surtout) donc au lieu de travailler sur deux variables(pseudo et message) le programme n'aurau qu'à travailler sur pseudo.
et cette fois çi ça marcheee yeees lol

<html><body>

<form method="post">
<input type="text" name="pseudo"/>
<input type="submit"/>
</form>

<?php 
//Ajout du Pseudo dans la table "exemple"
if (isset($_POST['pseudo']))
{
$pseudo=$_POST['pseudo'];
mysql_connect("localhost","root","");
mysql_select_db("test");
mysql_query("insert into exemple values ('','$pseudo')") or die(mysql_error());
mysql_close();
}
//calclul du nombre des entrees dans la tble "exemple"
mysql_connect("localhost","root","");
mysql_select_db("test");
$entrees=mysql_query("select count(*)as entrees from exemple") or die (mysql_error());
$total=mysql_fetch_array($entrees);
$nombre=$total['entrees'];
mysql_close();

//calcul du nombre des pages et son ecriture sous forme de lien
$ps=3; //nombre de pseudos par page
$pages=ceil($nombre/$ps); //nombre des pages

for($i=1; $i<=$pages; $i++)
{
echo '<a href="exemple.php?numero_page='.$i.'">'.$i.'</a>';
}
echo'<br/>';

//transmission du numero de la page par GET
if(isset($_GET['numero_page']))
{
$lapage=$_GET['numero_page'];
}
else
{
$lapage=1;
}

//calcul du premier pseudo duquel MYSQL va commencer l'affichage suivant le numero de la page
//et limite de l'affichage au troisieme pseudo à partir du premier à afficher

$limite=$ps*($lapage-1);
mysql_connect("localhost","root","");
mysql_select_db("test");
$mon_dernier_resultat=mysql_query("select * from exemple order by id desc limit ".$limite.",3");
while($dernier_resultat=mysql_fetch_array($mon_dernier_resultat))
{
echo $dernier_resultat['pseudo']."<br/>";
}

mysql_close();


?>

</body></html>




En tout il y avait deux petits pbms dans l'ancien code: le premier dans la boucle pour afficher les numeros de pages sous forme de lien:
for ($i=1; $i<$pages; $i++)
faux
for ($i=1; $i<=$pages; $i++)
correct

et le deuxième dans le calcul du premier message à afficher
$pp=($pages+1)-$np;
$premier_message_a_afficher=$pp*$messages_par_page;
faux
$premier_message_a_afficher=$messages_par_page*($np-1);
correct
et un tout petit dernier dans LIMIT
il faut laisser un espace entre limite et '

enfin je renvois l'ancien code corrigé pour ceux qui s'y interessent et j'espère que ça vous sera utile
<html><body>
<p style="text-align:center">Voici mon livre d'or<br/>Veuillez me laisser un message<br/></p>

<form method="post">
<p style="text-align:center">Pseudo: <br/><input type="text" name="pseudo"/><br/>
Message: <br/><textarea name="message"></textarea><br/>
<input type="submit"><br/>
</p></form>

<?php
//ajouter la nouvelle entree
if(isset($_POST['pseudo']) and isset($_POST['message']))
{
if($_POST['pseudo']!=null and $_POST['message']!=null)
{
$pseudo=htmlentities($_POST['pseudo'], ENT_QUOTES);
$message=htmlentities($_POST['message'], ENT_QUOTES);
mysql_connect("localhost","root","");
mysql_select_db("test");
mysql_query("insert into livre_dor values('','$pseudo','$message')") or die (mysql_error());
mysql_close();
}
}

//calculer le nombre d'entrees
mysql_connect("localhost","root","");
mysql_select_db("test");
$resultat=mysql_query("select count(*) as entrees from livre_dor") or die (mysql_error());
$affichage=mysql_fetch_array($resultat);
$entrees=$affichage['entrees'];
mysql_close();

//calculer le nombre de page
$mpp=5;
$pages=ceil($entrees/$mpp);
echo'Page: ';
for($i=1; $i<=$pages; $i++)
{
echo'<a href="livre_dor.php?numero_page='.$i.'">'.$i.'</a>'.' ';

}
echo'<br/>';

//afficher les pages
if(isset($_GET['numero_page']))
{
$numero_page=$_GET['numero_page'];
}
else
{
$numero_page=1;
}

$premier_message=$mpp*($numero_page-1);

mysql_connect("localhost","root","");
mysql_select_db("test");
$result=mysql_query("select * from livre_dor order by id desc limit ".$premier_message.",".$mpp) or die (mysql_error());
while($resultat_final=mysql_fetch_array($result))
{
echo $resultat_final['pseudo'].' a dit: '.$resultat_final['message'].'<br/>';
}
mysql_close();
?>





</body></html>