Problème pour posté les messages de mon livre d'or

Résolu
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai suivi le tuto du "site du zéro" pour le livre d'or.

Mais je bloque pour posté les messages.
Les données sont bien entrées dans ma base de donnée, mais le retour pour les messages, ils ne s'affiche pas.

Voici le bout de code pour le retour des messages:

connectMaBase(); 
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;   
$sql = mysql_query('SELECT pseudo,note,message,date FROM messagelivredor ORDER BY id DESC LIMIT'.$premierMessageAafficher.','.$nombreDeMessagesParPage.''); 
while($donnees = @mysql_fetch_array($sql)); 
{ 
        echo '<p><strong>'.stripslashes($donnees['pseudo']).'</strong> a écrit          a posté le'.(stripslashes($donnees['date'])).'<br/>'.nl2br(stripslashes($donnees['message'])).'<br/> a mis la note de '.stripslashes($donnees['note']).'</p>'; 
} 
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
mysql_close();


ou est le problème?

A voir également:

1 réponse

Tralala8 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonjour,

Il y a un ";" entre ton while et l'ouverture de l'accolade. De plus, l'avant dernière ligne (mysql_query) est inutile.
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour Tralala8 merci pour votre réponse,
Mais j'ai déjà corrigé des détails là. Mais le problème persiste toujours!

Le truc si je fais un copier /collé du code du tuto livre d'or site du zéro.
Il fonctionne (je n'ai pas trouvé la solution pour rajouté un message).

Mais j'ai modifier la partie 1 du code, en rajoutant ma zone formulaire (déjà préparé auparavant).

La page de fond et le formulaire s'affiche correctement, et l'utilisation du formulaire fonctionne correct puisque les données s'enregistre dans ma base de donnée.

Je sais que le problème c'est la partie 3, la commande SQL ne "post" pas les données.
Dans -> echo<- il m'affiche que le text mais pas les données.
0
ReDLoG
 
Bonjour,

Il FAUT utiliser la commande mysql_fetch_assoc() et non pas mysql_fetch_array() :
while($donnees = @mysql_fetch_assoc($sql)) {
        echo '<p><strong>'.stripslashes($donnees['pseudo']).'</strong> a écrit          a posté le'.(stripslashes($donnees['date'])).'<br/>'.nl2br(stripslashes($donnees['message'])).'<br/> a mis la note de '.stripslashes($donnees['note']).'</p>';
}
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour ReDLoG,

après quelque recherche, j'ai vu qu'il fallait modifié cette fonction, que j'ai fais entre temps!
mais le problème persiste toujours!

De plus j'ai remarqué:

$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;     
$sql = mysql_query('SELECT * FROM messagelivredor ORDER BY id DESC LIMIT'.$premierMessageAafficher.','.$nombreDeMessagesParPage.'');   
while($donnees = @mysql_fetch_assoc($sql)) ; <--!    
{   
        echo'<p><strong>'.stripslashes($donnees['pseudo']).'</strong> a écrit          a posté le   
  '.stripslashes($donnees['date']).'<br/>'.nl2br(stripslashes($donnees['message'])).'<br/> a mis la note de '.stripslashes($donnees['note']).'</p>';   
}   
mysql_close();   
?>


que si je laisse le ( ; ) là, le text s'affiche mais pas les données
alors que si j'enlève le ( ; ) il n'y a pas les données et de texte affiché
c'est normal?
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
Voilà mon code pour mon livre d'or mais il m'affiche toujours rien!
<body bgcolor="#FFFFFF">
	<table width="100%" height="100%">
		<tr align="center">
			<th align="center" valign="middle" scope="col"><table width="100%" height="100%">
		<tr>
			<th height="52" colspan="99" bordercolor="#000000" bgcolor="#CC66FF" scope="col"><img src="../images/gif/champignons 1.gif" alt="BAR2" width="48%" height="96%" /><img src="../images/gif/champignons 1.gif" alt="BAR2" width="48%" height="96%" /></th>
		</tr>
		<tr bgcolor="#CCFFCC">
			<th height="100%" colspan="4" scope="row"><span class="Style20"></span> </th>
        </tr>
        <tr bgcolor="#CCFF99">
			<th height="100%" colspan="4" align="center" valign="middle" scope="row"><span class="Style59"><span class="Style60 Style57"><a href="../accueil.html" class="Style59">Accueil</a></span></span></th>
        <tr align="center" valign="top">
            <th height="100%" colspan="3" scope="row">
	<table width="100%" height="10%" align="center" valign="top">
          <form method="post" action="Messagelivredor.php"/>
        <tr width="100%" align="center" valign="middle" bgcolor="#CCFFCC">
            <th width="30%" height="" scope="col"><span class="Style62">Votre Nom :</span>
              <input required type="texte" name="pseudo" value="" size="20"/>
			</th>
            <th width="50%" colspan="2" align="center" scope="col"><span class="Style62">Votre note:</span>
                <select required  value="" name="note">
                  <option value="">note de 1 à 5 étoile(s)</option>
                  <option value="1 étoile">1 étoile </option>
                  <option value="2 étoiles">2 étoiles</option>
                  <option value="3 étoiles">3 étoiles</option>
                  <option value="4 étoiles">4 étoiles</option>
                  <option value="5 étoiles">5 étoiles</option>
                </select> 
                <span class="Style63">( 5 étoiles étant la meilleure).</span>
			</th>
        </tr>
        <tr align="center" valign="middle" bgcolor="#CC66FF">
			<th height="40" colspan="3" bordercolor="#FFFFFF" bgcolor="#FFFFFF" scope="row"><textarea required name="message" rows="5%" cols="100%" value="" on></textarea>
			</th>
        </tr>
        <tr>
          <th width="30%" align="center" valign="middle" bordercolor="#FFFFFF" bgcolor="#CC99FF"><input type="reset" name="Votremessage" value="Effacer"/></th>
          <td width="36%" align="center" valign="middle" bordercolor="#FFFFFF" bgcolor="#000000"></td>
          <td width="30%" align="center" valign="middle" bordercolor="#FFFFFF" bgcolor="#CC99FF"><input type="submit" value="Poster" /></td>
		</tr>
	</table>
	</table>
<?php
require "mydb.php";
connectMaBase();
if(isset($_POST['pseudo']) AND isset($_POST['note']) AND isset($_POST['message']))
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$note = mysql_real_escape_string(htmlspecialchars($_POST['note']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);
$date = date("y-m-d");
$sql = ("INSERT INTO livredor VALUES('','".$pseudo."','".$note."','".$message."','".$date."')");
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br/>'.mysql_error());	
if ($sql) header('Location: messagelivredor.php');
}
$nombreDeMessagesParPage = 20;
$retour = mysql_query('SELECT COUNT(*) AS nb_message FROM messagelivredor');
$donnees = @mysql_fetch_assoc($retour);
$totalDesMessages = $donnees['nb_message'];
$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
echo '<strong> Page(s) : </strong><br/>';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
	echo '<a href="Messagelivredor.php?page='.$i.'">&nbsp;'.$i.'</a> ';
}
?>
<?php
if (isset($_GET['page']))
{
        $page = $_GET['page'];
}
else
{
        $page = 1;
}
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;  
$sql = mysql_query('SELECT * FROM livredor ORDER BY id DESC LIMIT'.$premierMessageAafficher.','.$nombreDeMessagesParPage);
while($donnees = @mysql_fetch_assoc($sql))
{
    echo '<p><strong>'.stripslashes($donnees['pseudo']).'</strong> a écrit &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a posté le
	'.stripslashes($donnees['date']).'<br/>'.nl2br(stripslashes($donnees['message'])).'<br/> a mis la note de '.stripslashes($donnees['note']).'/ 5</p>';
}
mysql_close();
?>
</body>
</html>


je deviens fou, ça fais trois jours que je suis dessus et je n'ai toujours pas trouvé la solution!
0