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

Résolu/Fermé
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 - Modifié par cretinator le 12/02/2013 à 14:50
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 - 14 févr. 2013 à 23:35
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 mercredi 17 août 2011 Statut Membre Dernière intervention 12 février 2013 14
12 févr. 2013 à 23:23
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 samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
13 févr. 2013 à 14:01
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
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 samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
Modifié par cretinator le 13/02/2013 à 16:14
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 samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
14 févr. 2013 à 23:35
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