Impossible de posté un message sur livre d'or

Résolu
will.smith Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   -  
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une érreurs dans mon livre d'or pour posé un message car impossible de posté le message il n'apparait meme pas dans ma page et ni dans la base sql

donc l'érreur :

1 message a été posté

Page : 1 Unknown column 'livre_d_or' in 'order clause'


le code est :

<?php
      include('includes/connect01.php');

      //Si personne n'a posté

      $premier = mysql_query("SELECT COUNT(*) AS message_post FROM livre_d_or");
	  $message = mysql_fetch_array($premier);
	  $total = $message['message_post'];
	  if ($total == 0)
	  {
	  echo '<br /><br />Soyez le premier à poster !';
	  }
	  if ($total >= 1)
	  {

      //----------------------------------------------------------------------------------------------//
	  //Si quelqun a déja posté
	  // On met dans une variable le nombre de messages qu'on veut par page

      $nombreDeMessagesParPage = 80;

      // Essayez de changer ce nombre pour voir :o)
	  // On récupère le nombre total de messages

      $retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM livre_d_or");
	  $donnees = mysql_fetch_array($retour);
	  $totalDesMessages = $donnees['nb_messages'];

      // On calcule le nombre de pages à créer

      $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

      // Puis on fait une boucle pour écrire les liens vers chacune des pages

      echo '<div class="pages" style="text-align:center">Page : ';
	  for ($i = 1 ; $i <= $nombreDePages ; $i++)
	  {
	  echo '<a href="livre_d_or.php?page=' . $i . '">' . $i . '</a> ';
	  }

      // --------------- Etape 3 ---------------
	  // Maintenant, on va afficher les messages
	  // ---------------------------------------

      if (isset($_GET['page']))
	  {
	  $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livre_d_or.php?page=4)
	  }
	  else

      // La variable n'existe pas, c'est la première fois qu'on charge la page

      {
	  $page = 1;

      // On se met sur la page 1 (par défaut)

      }

      // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL

      $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
			$sql = 'SELECT * FROM livre_d_or c, forum_membres f where c.id_membre=f.id_membre ORDER BY livre_d_or DESC
				LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;

	  
	  
	  
	  
	 $reponse = mysql_query($sql) or die(mysql_error());

		   $nb= mysql_num_rows($reponse);
 
		 if($nb==0)
		 {
			echo '<div align="center" class="texte_blanc">Soyez le premier à poster !</div><br />';
		 }
		 else
		 {
			echo '<table>';
      //On fait une boucle pour afficher tout les messages
 
      while ($donnees = mysql_fetch_array($reponse))
	  {
 
      //A partir d'ici tu doit faire appel à ta fonction de parsage comme ceci
 
      $message_parse = code($donnees['message']);
		           
		           echo '<tr>';
		           echo '<th class="vt_auteur">Auteurs</th>';
		           echo '<th class="vt_mess">Messages</th>';
		           echo '</tr>';
		           echo '<tr><td>
		           <a href="forum/voirprofil.php?m='.$donnees['membre_pseudo'].'&amp;action=consulter">
		           '.$donnees['membre_pseudo'].'</a></td>';
	 
		           echo '<tr><td>';
		           echo '<div class="texte_blanc">'.EON($donnees['membre_citation']).'</div><br />';
		           if(empty($donnees['membre_avatar']))
		           {
		               echo '<img src="../images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
		           }
		           else
{
		               echo '<img src="../images/avatars/'.$donnees['membre_avatar'].'" alt="son avatar" title="son avatar" />';
		           }
		           echo "<br />Membre inscrit le ".date('d/m/Y',$donnees['membre_inscrit'])."";
		           echo "<br />Messages : ".$donnees['membre_post']."<br />";
		           echo "Pays : ".$donnees['membre_pays']."</td>";
		           echo '<td>';
//		           echo ''.code($donnees['post_texte']).'';
		           if (!empty($donnees['message']))
	             {
		               echo '<br />';
					  echo code(stripslashes(nl2br($donnees['message'])));
		               echo '<hr /></td></tr>';
		               echo '<br /><br />';
		           }
		         
	        }
			echo '</table>';
			echo '<br />';
			
			

      //On ferme le else

      }

      //On ferme la boucle

      }
	  if ($total == 0)

      //On se deconnecte

      mysql_close();

      ?>

      <?php

      //mysql_connect("", "", "");
	  //mysql_select_db("");
	  mysql_connect("", "", "");
	  mysql_select_db("");

      if ($total >=1)
	  {

      // --------------- Etape 1 -----------------
	  // Si un message est envoyé, on l'enregistre
	  // -----------------------------------------

      if (isset($_POST['message']))
	  {
	  
	  
      // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité

      $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

      // De même pour le message

      $message = nl2br($message);

      // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
	  // On peut enfin enregistrer :o)


 mysql_query("INSERT INTO livre_d_or (id, id_membre, message, date, heure) VALUES('', '".$_POST['id_membre']."', '".$_POST['message']."', '".$_POST['date']."',  '".$_POST['heure']."')");

}


      // --------------- Etape 2 -----------------
	  // On écrit les liens vers chacune des pages
	  // -----------------------------------------

      // On met dans une variable le nombre de messages qu'on veut par page

      $nombreDeMessagesParPage = 80;

      // Essayez de changer ce nombre pour voir :o)
	  // On récupère le nombre total de messages

      $retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM livre_d_or");
	  $donnees = mysql_fetch_array($retour);
	  $totalDesMessages = $donnees['nb_messages'];

      // On calcule le nombre de pages à créer

      $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

      // Puis on fait une boucle pour écrire les liens vers chacune des pages

      echo '<div align="center" class="pages">Page : ';
	  for ($i = 1 ; $i <= $nombreDePages ; $i++)
	  {
	  echo '<a href="livre_d_or.php?page=' . $i . '">' . $i . '</a>';
	  }
	  echo '</div>';
      //On ferme if

      }
	  if ($total == 0)
	  ?>


merci de m'aidé pour quoi il ne veut pas afficher les messages donc impossible de posté un message lol

7 réponses

Nook
 
Je peux au moins te dire d'où vient l'erreur affichée :
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL

$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$sql = 'SELECT * FROM livre_d_or c, forum_membres f where c.id_membre=f.id_membre ORDER BY livre_d_or DESC
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;

livre_d_or est le nom de ta table il faut ordonné le résultat avec une colonne.
Peut-être est-ce la cause de ton ennui de sauvegarde mais j'en suis pas sûre.

Dis-moi ce que ça donne...
0
Sandriine Messages postés 1255 Date d'inscription   Statut Membre Dernière intervention   283
 
C'est ta requete de ton étape 3 qui pose un problème. Ce serait le ORDER BY qui poserait problème.

Tu n'a qu'a faire un echo $sql; et voir ce que donne ta requête, tu repèrera l'erreur facilement.
0
will.smith Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   10
 
re je savais que ça venait là mais je ne sait pas trop comment il faut ordonné le résultat avec une colonne

donc ce code

      $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
			$sql = 'SELECT * FROM livre_d_or c, forum_membres f where c.id_membre=f.id_membre ORDER BY livre_d_or DESC
				LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;


il faut remettre à nouveau dans l'étape 3

mais où car là je suis un peux paumé lol

si tu peux m'aidé ça seras sympas
0
Nook
 
Fais un order by id DESC, si ton id est bien incrémenté à chaque nouveau message, ce sera bon. (apparemment c'est le cas, tu as dû le mettre en incrémentation automatique, je suppose?)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
will.smith Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   10
 
avant j'ai mis un message directement sur la base sql et avec ton code id donc

      $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
			$sql = 'SELECT * FROM livre_d_or c, forum_membres f where c.id_membre=f.id_membre ORDER BY id DESC
				LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;


il apparaît bien le message que j'ai mis directement sur la base sql

donc là j'ai voulu éssayé de mettre un message mais là il ne veut pas posté les messages

donc là il faut trouvé où ça coince et coment faire pour posté un message

merci
0
will.smith Messages postés 256 Date d'inscription   Statut Membre Dernière intervention   10
 
re peux petre pour posté un message ajout_message

mais quan je met un message il me dit votre message à étais bien enregistré donc je ne sais pas où ça vient donc je vais donné mes 2 pages pour que vous vérifié pour quoi il ne veut pas posté les messages

voilà les codes :

ajout_message.php

<?php
      // Cette fonction doit être appelée avant tout code html

      header('refresh: 2; url=../livre_d_or.php');

	  ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Signer mon livre d'or du site</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-15" />
<link href="../design/par_default.css" rel="stylesheet" type="text/css" title="Design" />
</head> 
<body>
                                    <div class="cadre_principale">
									<div class="cadre_centrer">

      <?php

	  //Un ajout ?

      include('../includes/connect01.php');

      //Sécurité anti-hack pour tout les champs

	  $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));


      //Valeur par defaut

	  $dMessage = 'Votre Message';

      if (($message === '') || ($contenu === $dMessage))

	  { echo '<img src="../images/bbcodes/information.png" /><div align="center" class="texte_blanc">Veuillez remplir tout les champs svp !</div>'; }
	  else
	  {

      $date = date('d/m/Y');
	  $heure = date('H:i');


//On ajoute
 
        $son_id=mysql_query("select id_membre from forum_membres where membre_pseudo = '".$_SESSION['pseudo']."'") ;
		$id_du_membre = mysql_fetch_array($son_id);
mysql_query("INSERT INTO livre_d_or (`id_membre`, `id_logiciels`,`message`,`date`,`heure`) VALUES (".$id_du_membre['id_membre'].", 1,'".$_POST['message']."','".date("d/m/y")."' ,'".date("H:i")."')");

      echo '<img src="../images/bbcodes/information.png" /><div align="center" class="texte_blanc">Votre message à bien été ajouté ! Merci</div>';
	  }
	  
      //On redirige vers la page livre_d_or.php
      //On se deconnecte

      mysql_close();
	  ?>

                                    </div>
									<!-- fin div class="cadre_centrer" -->
									</div>
									<!-- fin div class="cadre_principale" -->
</body>
</html>


message.php

<?php
      include('includes/connect01.php');

      //Si personne n'a posté

      $premier = mysql_query("SELECT COUNT(*) AS message_post FROM livre_d_or");
	  $message = mysql_fetch_array($premier);
	  $total = $message['message_post'];
	  if ($total == 0)
	  {
	  echo '<br /><br />Soyez le premier à poster !';
	  }
	  if ($total >= 1)
	  {

      //----------------------------------------------------------------------------------------------//
	  //Si quelqun a déja posté
	  // On met dans une variable le nombre de messages qu'on veut par page

      $nombreDeMessagesParPage = 80;

      // Essayez de changer ce nombre pour voir :o)
	  // On récupère le nombre total de messages

      $retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM livre_d_or");
	  $donnees = mysql_fetch_array($retour);
	  $totalDesMessages = $donnees['nb_messages'];

      // On calcule le nombre de pages à créer

      $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

      // Puis on fait une boucle pour écrire les liens vers chacune des pages

      echo '<div class="pages" style="text-align:center">Page : ';
	  for ($i = 1 ; $i <= $nombreDePages ; $i++)
	  {
	  echo '<a href="livre_d_or.php?page=' . $i . '">' . $i . '</a> ';
	  }

      // --------------- Etape 3 ---------------
	  // Maintenant, on va afficher les messages
	  // ---------------------------------------

      if (isset($_GET['page']))
	  {
	  $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livre_d_or.php?page=4)
	  }
	  else

      // La variable n'existe pas, c'est la première fois qu'on charge la page

      {
	  $page = 1;

      // On se met sur la page 1 (par défaut)

      }

      // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL

      $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
			$sql = 'SELECT * FROM livre_d_or c, forum_membres f where c.id_membre=f.id_membre ORDER BY id DESC
				LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;

	  
	  
	  
	  
	 $reponse = mysql_query($sql) or die(mysql_error());

		   $nb= mysql_num_rows($reponse);
 
		 if($nb==0)
		 {
			echo '<div align="center" class="texte_blanc">Soyez le premier à poster !</div><br />';
		 }
		 else
		 {
			echo '<table>';
      //On fait une boucle pour afficher tout les messages
 
      while ($donnees = mysql_fetch_array($reponse))
	  {
 
      //A partir d'ici tu doit faire appel à ta fonction de parsage comme ceci
 
      $message_parse = code($donnees['message']);
		           
		           echo '<tr>';
		           echo '<th class="vt_auteur">Auteurs</th>';
		           echo '<th class="vt_mess">Messages</th>';
		           echo '</tr>';
		           echo '<tr><td>
		           <a href="forum/voirprofil.php?m='.$donnees['membre_pseudo'].'&amp;action=consulter">
		           '.$donnees['membre_pseudo'].'</a></td>';
	 
		           echo '<tr><td>';
		           echo '<div class="texte_blanc">'.EON($donnees['membre_citation']).'</div><br />';
		           if(empty($donnees['membre_avatar']))
		           {
		               echo '<img src="../images/avatar.gif" alt="avatar par défault" title="avatar par défault" />';
		           }
		           else
{
		               echo '<img src="../images/avatars/'.$donnees['membre_avatar'].'" alt="son avatar" title="son avatar" />';
		           }
		           echo "<br />Membre inscrit le ".date('d/m/Y',$donnees['membre_inscrit'])."";
		           echo "<br />Messages : ".$donnees['membre_post']."<br />";
		           echo "Pays : ".$donnees['membre_pays']."</td>";
		           echo '<td>';
//		           echo ''.code($donnees['post_texte']).'';
		           if (!empty($donnees['message']))
	             {
		               echo '<br />';
					  echo code(stripslashes(nl2br($donnees['message'])));
		               echo '<hr /></td></tr>';
		               echo '<br /><br />';
		           }
		         
	        }
			echo '</table>';
			echo '<br />';
			
			

      //On ferme le else

      }

      //On ferme la boucle

      }
	  if ($total == 0)

      //On se deconnecte

      mysql_close();

      ?>

      <?php

      //mysql_connect("", "", "");
	  //mysql_select_db("");
	  mysql_connect("", "", "");
	  mysql_select_db("");

      if ($total >=1)
	  {

      // --------------- Etape 1 -----------------
	  // Si un message est envoyé, on l'enregistre
	  // -----------------------------------------

      if (isset($_POST['message']))
	  {
	  
	  
      // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité

      $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));

      // De même pour le message

      $message = nl2br($message);

      // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
	  // On peut enfin enregistrer :o)


 mysql_query("INSERT INTO livre_d_or (id, id_membre, message, date, heure) VALUES('', '".$_POST['id_membre']."', '".$_POST['message']."', '".$_POST['date']."',  '".$_POST['heure']."')");

}


      // --------------- Etape 2 -----------------
	  // On écrit les liens vers chacune des pages
	  // -----------------------------------------

      // On met dans une variable le nombre de messages qu'on veut par page

      $nombreDeMessagesParPage = 80;

      // Essayez de changer ce nombre pour voir :o)
	  // On récupère le nombre total de messages

      $retour = mysql_query("SELECT COUNT(*) AS nb_messages FROM livre_d_or");
	  $donnees = mysql_fetch_array($retour);
	  $totalDesMessages = $donnees['nb_messages'];

      // On calcule le nombre de pages à créer

      $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);

      // Puis on fait une boucle pour écrire les liens vers chacune des pages

      echo '<div align="center" class="pages">Page : ';
	  for ($i = 1 ; $i <= $nombreDePages ; $i++)
	  {
	  echo '<a href="livre_d_or.php?page=' . $i . '">' . $i . '</a>';
	  }
	  echo '</div>';
      //On ferme if

      }
	  if ($total == 0)
	  ?>


merci de m'aidé à trouvé le code qui pourais affiché les messages car là c'est impossible de posté

merci de votre aide
0
NookZ Messages postés 2138 Date d'inscription   Statut Membre Dernière intervention   514
 
En même temps ton message de confirmation que le post a bien été exécuté ne veut rien dire, tu ne teste pas si c'est bien le cas avant de l'afficher :s
Il s'affichera quoi qu'il se passe.
Y'a-t-il des caractères spéciaux dans le message que tu as tenté de poster?
Tu peux essayer de poster un message contenant juste "abc" pour voir déjà si ce n'est pas ça.

Là je ne peux pas tester ton code, mais au pire ce soir je devrais pouvoir. Envoie-moi un MP pour que je m'en souviennes, si tu veux que je vérifie ton code.
0