|
|
|
|
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.
Configuration: Windows XP Firefox 2.0.0.3
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>
|
Bonjour, me revoilà
<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>
|