Mettre les commentaires les plus recent en ha

Fermé
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 - 14 août 2011 à 13:56
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 - 19 août 2011 à 23:03
Bonjour j'ai suivi un tuto pour arriver a ca http://eastwoodchatterie.1.vg//comment/ (ne faite pas attention au texte ecrit c'est un test :P) , sauf que les commentaires les plus recent sont mis tout en bas et j'aimerais bien que ca soit l'inverse , qu'il soit tout en haut
Je vous donne donc le code de mon index.php

<?php require('connect.php');?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="style.css" media="all" />
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
  <script type="text/javascript">
  
  $(document).ready(function() {
    $('#ajax_result').hide();
    $('#load').hide();
    
    $('#form').submit(function(){
      
      valid = true;
      
      if($('#pseudo').val()==''){
        $('#pseudo').prev('.error').fadeIn(1000).text('Pseudo requis');
        valid = false;
      }
      
      else{
        $('#pseudo').prev('.error').slideUp();
      }
      
      if($('#commentaire').val()==''){
        $('#commentaire').prev('.error').fadeIn(1000).text('Commentaire requis');
        valid = false;
      }
      
      else{
        $('#commentaire').prev('.error').slideUp();
      }
      
      if(valid==true)
      {
        var pseudo = $('#pseudo').val();
        var commentaire = $('#commentaire').val();
        var dataString = 'pseudo='+pseudo+'&commentaire='+commentaire;
        
        $.ajax({
          type: 'POST',
          url: 'add_com.php',
          data: dataString,
          
          beforeSend: function()
          {
            $('#load').fadeIn();
          },
          success: function(data)
          {
            var responseData = jQuery.parseJSON(data);
            var pseudo = responseData.pseudo;
            var commentaire = responseData.commentaire;
            var date = responseData.date;
            
            $('#ajax_result').fadeIn(1000).append('<div class="com"><span class="auteur">'+pseudo+'</span><p>'+commentaire+'</p><span class="date">'+date+'</span></div>');
            $('#load').hide();
            $('#form').slideUp();
            
            
          }
        });
      }
      
      return false;
    });
});
  
  </script>
  <title></title>
</head>
<body>
  <div id="content">
    
    <h1>Mon article</h1>
    
    <p>
      Vel rhoncus velit risus a. Nunc? Massa integer, aliquam proin, porttitor tincidunt augue mid elementum in eu pulvinar! Etiam lectus dolor sit, in mus magna rhoncus aliquet ridiculus placerat turpis egestas aenean lectus adipiscing, porta et? Penatibus amet non enim! Velit elementum ut mattis augue nascetur mattis. Augue vel sed proin est, ac hac. Et cursus nunc lacus dapibus lorem, purus purus arcu integer enim nisi adipiscing ac lorem purus rhoncus ultricies, porta, sagittis magna scelerisque nascetur phasellus? Augue, habitasse integer odio arcu ultrices elit turpis egestas et magna egestas, nisi amet. Pellentesque proin mid est ac odio vel parturient integer enim sit in, pellentesque. Augue, elementum diam porta magna urna sit vel et? Rhoncus amet pid sed ac lundium.
      
    </p>
    
    
    <div id="commentaires">
      
      <?php
      $req = $bdd->prepare('SELECT * FROM commentaire');
      $req->execute();
      while($data = $req->fetch(PDO::FETCH_OBJ)):?>
      
      <div class="com">
        <span class="auteur"><?php echo $data->pseudo;?></span>
        <p><?php echo $data->commentaire;?></p>
        <span class="date"><?php echo $data->date;?></span>
      </div>
      
      <?php endwhile;?>
      
      <div id="ajax_result"></div>
      
    </div>
    
    <div id="load"></div>
    
    <form id="form" action="add_com.php" method="post">
      
      <label for="pseudo">Pseudo:</label>
      <span class="error"></span>
      <input type="text" name="pseudo" id="pseudo" />
      
      <label for="commentaire">Commentaire:</label>
      <span class="error"></span>
      <textarea name="commentaire" id="commentaire"></textarea>
      
      <input type="submit" id="submit" class="submit" value="Envoyer" />
      
    </form>
    
  </div>
</body>
</html>

Ainsi que mon ad_comment.php
<?php

require('connect.php');

if(!empty($_POST) && !empty($_POST['pseudo']) && !empty($_POST['commentaire']))
{
  extract($_POST);
  $pseudo = strip_tags($pseudo);
  $commentaire = strip_tags($commentaire);
  
  $req = $bdd->prepare('INSERT INTO commentaire (pseudo,commentaire) VALUES (:pseudo,:commentaire)');
  $req->execute(array(':pseudo'=>$pseudo, ':commentaire'=>$commentaire));
  $last_com_id = $bdd->lastInsertId('commentaire');
  $req->closeCursor();
  
  $req = $bdd->prepare('SELECT * FROM commentaire WHERE id=:last_com_id');
  $req->execute(array(':last_com_id'=>$last_com_id));
  $d = $req->fetch(PDO::FETCH_OBJ);
  
  $data = array('pseudo'=>$d->pseudo, 'commentaire'=>$d->commentaire, 'date'=>$d->date);
  
  echo json_encode($data);
}
else
{
  extract($_POST);
  $erreurs = array($erreurpseudo = (empty($pseudo)) ? 'Indiquez un pseudo' : null,
                   $erreurcommentaire = (empty($commentaire)) ? 'Indiquez un commentaire' : null);
  
  if($erreurs != null)
  {
    foreach($erreurs as $erreur)
    {
      if($erreur != null)
      {
        echo $erreur.'<br />';
      }
    }
  }
}

?>

Voila si quelqun peut m'aider c'est cool , merci d'avance :)




10 réponses

Stéphane18 Messages postés 372 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2019 132
18 août 2011 à 19:38
Salut, dans ta boucle for vérifie la variable $nbPage le p est en majuscule alors que tu la déclare en minuscule plus haut $nbpage!!!!!!
2
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
18 août 2011 à 19:46
C'etait ca !!!!!!!!!!!!!!!!!
Merci , merci , merci et merci encore <3
0
Stéphane18 Messages postés 372 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2019 132
18 août 2011 à 19:56
Ouf c'était ma dernière option à te proposer car moi et le php ont est pas super pote à chaque foi je passe des heures devant mes erreurs à péter les plombs et je perds un temps fou Bon courage à toi !!!
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
18 août 2011 à 20:03
franhcement tu ma enormement aider dans la coneception de mon site web :)
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
19 août 2011 à 23:03
Powaaa j'avais pensé aux types, mais alors la majuscule m'avait totalement échappé !!
Bien joué Stéphane18 !!
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
14 août 2011 à 14:38
.
0
Stéphane18 Messages postés 372 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2019 132
14 août 2011 à 14:51
Salut, je ne suis pas un pro en php mais essaye d'ajouté un
ORDER BY DESC dans ta requête !

Cette ligne:
$req = $bdd->prepare('SELECT * FROM commentaire');
Remplacer par:
$req = $bdd->prepare('SELECT * FROM commentaire ORDER BY DESC');
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
14 août 2011 à 17:09
Toujours la pour aider c'est cool :)
Bon alors j'ai fait ce que tu ma conseiller et ca n'affiche plus les commentaire , enfin voit par toi même http://eastwoodchatterie.1.vg/comment/
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
14 août 2011 à 17:10
c'est bon j'ai reussi :) j'ai fait order by ID desc
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
14 août 2011 à 17:55
Je peux encore abuser de ton aide?
0
Stéphane18 Messages postés 372 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2019 132
14 août 2011 à 19:32
Expose ton problème si moi je ne peux pas une personne plus calé pourras toujours venir t'aider!
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
14 août 2011 à 19:50
J'aimerais un systeme de pagination c'est a dire qu'au bout de 10 commentaire par exemple ca genere une nouvelle page
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
15 août 2011 à 14:13
Quelqun a une idée?
0
Stéphane18 Messages postés 372 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2019 132
15 août 2011 à 14:32
Salut, et en ouvrant les balises php pour afficher ta boucle for ça donne quoi ?
<?php for($i=1;$i<=$nbPage;$i++){
	echo "$i /";
}
      ?>
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
15 août 2011 à 16:07
deja tenter , ca ne marches pas ...
0

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

Posez votre question
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
15 août 2011 à 14:50
deja essayer ca ne marche pas :/
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
15 août 2011 à 18:23
Im singgiiiinnng in the rain just siinnngggiiin in the rain
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
15 août 2011 à 21:29
Essaye de changer ça :

$premierArticle = ($cpage-1)*$perpage;
$sql = "SELECT * FROM commentaire ORDER BY id DESC LIMIT ".$premierArticle.", ".$perpage;


Attention, ton $cpage devra etre modifiable par l'utilisateur pour changer de page, par exemple en passant par les $_GET.
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
15 août 2011 à 22:10
$sql = "SELECT COUNT(id) as nbArt FROM commentaire";
$req= mysql_query($sql) or die(mysql_error());
$data=mysql_fetch_assoc($req);


$nbArt = $data['nbArt'];
$perpage = 6;
$nbpage= ceil($nbArt/$perpage);
$cpage = 1;

$sql = "SELECT * FROM commentaire ORDER BY id DESC LIMIT ".(($cpage-1)*$perpage).",$perpage";
$req= mysql_query($sql) or die(mysql_error());
while($data =mysql_fetch_object($req)):?>

<div class="com">
<span class="auteur"><?php echo $data->pseudo;?></span>
<p><?php echo $data->commentaire;?></p>
<span class="date"><?php echo $data->date;?></span>
</div>
<?php endwhile;?>
<?php for($i=1;$i<=$nbPage;$i++){
echo "$i /";
}
?>
Ca n'affiche pas le numero des pages ....
pourtant quand je fais echo $nbpage en dessous de nbpage ca m'affiche le nombre de page ....
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
15 août 2011 à 23:10
Et avec
echo $i." / ";


??
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
16 août 2011 à 01:01
Non :/
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
16 août 2011 à 01:06
que vaut nbPage ?
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 12:56
il vaut 3 avec ce code :
$nbArt = $data['nbArt'];
$perpage = 6;
$nbpage= ceil($nbArt/$perpage);
echo $nbpage;
$cpage = 1;
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
17 août 2011 à 15:28
Dans ton for essaye de mettre directement "3" à la place de $nbpage et vois si cela fonctionne.

Sinon essaye cela :

<?php
   for($i=1;$i<=intval($nbPage);$i++){
      echo $i." / ";
   }
?> 

Et tiens moi au courant.
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 17:03
Pour le moment j'ai un probleme avec mon herbergeur , dés que c'est regler je test , encore merci :)
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 18:30
Salut effectivement quand je met directement trois , j'ai 1/2/3 afficher ...
tu peux m'aider?
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
17 août 2011 à 18:45
As-tu essayé le code que j'ai posté....?
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 19:10
Ah non je n'ai pas vu , attend je teste de suite :)
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 19:11
Non malheuresement ca ne marche pas :/
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
Modifié par Mihawk le 17/08/2011 à 21:06
Essaye le code suivant et poste-moi le résultat :
<?php 
   echo $nbpage; 
   echo intval($nbpage); 
   for($i=1;$i<=intval($nbPage);$i++){ 
      echo $i." / "; 
   } 
?> 

Tant qu'on ne fait pas, on ne sait pas.
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 21:10
Ok je fais tout de suite , merci de te casser la tête avec un probleme qui n'est pas le tiens :)
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
Modifié par Flothebobcat le 17/08/2011 à 21:13
le resultat est 11
Tiens si tu veux voir pas toi meme :P (c'est en tout petit en dessous du commentaire ^^)
http://flothebobcat.olympe-network.com/www/
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 21:43
C'est normal?
0
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
17 août 2011 à 23:27
Tu n'as appremment qu'une seule page...
Bizarre qu'on ne passe pas dans le for, je ne comprends pas !
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
17 août 2011 à 23:49
Ah oui non mais comme j'ai changer d'hebergeur la BDD a etait nettoyer il y a donc 1 seule page si tu veux j'ecris plein de coms comme ca :P
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
18 août 2011 à 21:18
Herf jamais un probleme sans un autre qui suis http://flothebobcat.olympe-network.com/www
Quand je clique sur les page ca ne fait rien vla mon code :
<?php require('connect.php');?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="style.css" media="all" />
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
  <script type="text/javascript">
  
  $(document).ready(function() {
    $('#ajax_result').hide();
    $('#load').hide();
    
    $('#form').submit(function(){
      
      valid = true;
      
      if($('#pseudo').val()==''){
        $('#pseudo').prev('.error').fadeIn(1000).text('Pseudo requis');
        valid = false;
      }
      
      else{
        $('#pseudo').prev('.error').slideUp();
      }
      
      if($('#commentaire').val()==''){
        $('#commentaire').prev('.error').fadeIn(1000).text('Commentaire requis');
        valid = false;
      }
      
      else{
        $('#commentaire').prev('.error').slideUp();
      }
      
      if(valid==true)
      {
        var pseudo = $('#pseudo').val();
        var commentaire = $('#commentaire').val();
        var dataString = 'pseudo='+pseudo+'&commentaire='+commentaire;
        
        $.ajax({
          type: 'POST',
          url: 'add_com.php',
          data: dataString,
          
          beforeSend: function()
          {
            $('#load').fadeIn();
          },
          success: function(data)
          {
            var responseData = jQuery.parseJSON(data);
            var pseudo = responseData.pseudo;
            var commentaire = responseData.commentaire;
            var date = responseData.date;
            
            $('#ajax_result').fadeIn(1000).append('<div class="com"><span class="auteur">'+pseudo+'</span><p>'+commentaire+'</p><span class="date">'+date+'</span></div>');
            $('#load').hide();
            $('#form').slideUp();
            
            
          }
        });
      }
      
      return false;
    });
});
  
  </script>
  <title></title>
</head>
<body>
  <div id="content">
    
    <h1>Mon article</h1>
    
    <p>
      Vel rhoncus velit risus a. Nunc? Massa integer, aliquam proin, porttitor tincidunt augue mid elementum in eu pulvinar! Etiam lectus dolor sit, in mus magna rhoncus aliquet ridiculus placerat turpis egestas aenean lectus adipiscing, porta et? Penatibus amet non enim! Velit elementum ut mattis augue nascetur mattis. Augue vel sed proin est, ac hac. Et cursus nunc lacus dapibus lorem, purus purus arcu integer enim nisi adipiscing ac lorem purus rhoncus ultricies, porta, sagittis magna scelerisque nascetur phasellus? Augue, habitasse integer odio arcu ultrices elit turpis egestas et magna egestas, nisi amet. Pellentesque proin mid est ac odio vel parturient integer enim sit in, pellentesque. Augue, elementum diam porta magna urna sit vel et? Rhoncus amet pid sed ac lundium.
      
    </p>
    
    
    <div id="commentaires">
      
      <?php
     
mysql_connect("sql.olympe-network.com","******","******") or die('erreur de connexion mysql');
mysql_select_db ("*****") or die('erreur de connexion base');

	 $sql = "SELECT COUNT(id) as nbArt FROM commentaire";
$req= mysql_query($sql) or die(mysql_error());
$data=mysql_fetch_assoc($req);


$sql = "SELECT COUNT(id) as nbArt FROM commentaire";
$req= mysql_query($sql) or die(mysql_error());
$data=mysql_fetch_assoc($req);

if(isset($_GET['p'])){
$cpage = $_GET['p'];	
}
else{
  $cpage=1;	
}

$nbArt = $data['nbArt'];
$perpage = 6;
$nbpage= ceil($nbArt/$perpage);
$cpage = 1;



$sql = "SELECT * FROM commentaire ORDER BY id DESC LIMIT ".(($cpage-1)*$perpage).",$perpage";
$req= mysql_query($sql) or die(mysql_error());
while($data =mysql_fetch_object($req)):?>

      <div class="com">
        <span class="auteur"><?php echo $data->pseudo;?></span>
        <p><?php echo $data->commentaire;?></p>
        <span class="date"><?php echo $data->date;?></span>
      </div>
      <?php endwhile;?>
<?php for($i=1;$i<=$nbpage;$i++){
	echo "<a href=\"index.php?p=$i\">$i</a>/";
}
      ?>
 <div id="ajax_result"></div>
      
    </div>
    
    <div id="load"></div>
    
    <form id="form" action="add_com.php" method="post">
      
      <label for="pseudo">Pseudo:</label>
      <span class="error"></span>
      <input type="text" name="pseudo" id="pseudo" />
      
      <label for="commentaire">Commentaire:</label>
      <span class="error"></span>
      <textarea name="commentaire" id="commentaire"></textarea>
      
      <input type="submit" id="submit" class="submit" value="Envoyer" />
      
    </form>
    
  </div>
</body>
</html>

Le code supposé afficher les page est le suivant

if(isset($_GET['p'])){
$cpage = $_GET['p'];	
}
else{
  $cpage=1;	
}
0
Stéphane18 Messages postés 372 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2019 132
18 août 2011 à 21:54
Une erreur simple ! le code ci-dessous ne se trouve pas au bonne endroit la variable $cpage n'existe pas encore, elle ne passe donc pas dans l'url, ajoute ce code après avoir déclaré tes variables !

if(isset($_GET['p'])){
$cpage = $_GET['p'];	
}
else{
  $cpage=1;	
}


Comme ceci:

$nbArt = $data['nbArt'];
$perpage = 6;
$nbpage= ceil($nbArt/$perpage);
$cpage = 1;

if(isset($_GET['p'])){
$cpage = $_GET['p'];	
}
else{
  $cpage=1;	
}
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
18 août 2011 à 22:35
Salut maitnenant j'ai cet erreur The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@olympe-network.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
quand je clique sur une page regarde : flothebobcat.olympe-network.com/www
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
18 août 2011 à 22:36
ah ca remarche , niquel merci :)))
0
Flothebobcat Messages postés 1241 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 26 juillet 2014 55
18 août 2011 à 22:37
Si tu as des suggestion pour ameliorer?
0
Stéphane18 Messages postés 372 Date d'inscription jeudi 3 mars 2011 Statut Membre Dernière intervention 20 février 2019 132
18 août 2011 à 23:18
Apparemment tu as un souci avec l'encodage de ta page, je t'es envoyé un message et les accents sont remplacés par des symboles, vérifie que tu es bien en UTF-8, sinon tu pourrais ajouter à côté du pseudo "Message envoyé par"
0