si >10 commentaires alors nouvelle page

si >10 commentaires alors nouvelle page - PHP - Programmation

Marsh Posté le 09-03-2009 à 18:45:28    

Hello,
 
J'ai un petit soucie, j'ai créer une page php, ou chacun peut laisser son commentaire, j'ai donc fait ça:
 
http://jeunessedomdidier.ch/forum.php  (c'est très rustique, je sais)
 
Le problème => J'aimerais qu'il y ait environ 10 commentaires par page dans l'ordre décroissant, du plus récent au plus vieux, et que si > de 10 commentaire, il y ai création d'une nouvelle "page" sans pour autant changer l'url.
 
Possible ?
 
Au passage mon code php  
 

Spoiler :

<?php
 
connect();
 
$sql = "SELECT * FROM commentaire_tbl";  
$req = mysql_query($sql) or die ('Erreur SQL '.mysql_error());
 
echo '<table>';
while ($donnees = mysql_fetch_array($req) )
{
 echo '<tr><td><strong>Commentaire</strong> : '.$donnees['commentaire'].' </td><td></td><td><strong>Date</strong> : '.$donnees['date'].'</td>';
 
}
 echo '</table>';
 
 mysql_close();
?>
 
<form action="forum.php" method="post" name="insert">
 <p>
 
 <input type="text" name="commentaire" style="width:370;height:140;" /> </br>
 <input type="text" name="nom" value="Ton nom" onclick="texte.value='';"/>  
 <input type="text" name="date" value="<?php echo date("d.m.Y" ); ?>" onclick="texte.value='';"/>  
 <input type="submit" value="Valider" name="ok" />
 </p>
</form>
 
<?php
 
connect();
 
if (isset($_POST['ok']))
{
 if (empty($_POST['commentaire'])) exit("Fait pas le tétis et remplis moi ce commentaire" );
$sql = "INSERT INTO commentaire_tbl VALUES ('','".$_POST['commentaire']."','".$_POST['nom']."','".$_POST['date']."')";
mysql_query($sql) or die ('Erreur SQL : '.mysql_error());
}
 
mysql_close();
?>

Message cité 1 fois
Message édité par popotitagluck le 09-03-2009 à 18:53:48
Reply

Marsh Posté le 09-03-2009 à 18:45:28   

Reply

Marsh Posté le 09-03-2009 à 20:50:51    

comment ca sans changer l'url ?
 
il faut au moins que tu lui passes un parametre a ta page pour dire quelle page tu regardes.
 

Code :
  1. <?php
  2. $nbCommParPage = 10;
  3. if (empty($_GET['p']) || !ctype_digit($_GET['p'])) {
  4. $page = 0;
  5. } else {
  6. $page = $_GET['p'];
  7. }
  8. $sql = "SELECT * FROM commentaire_tbl ORDER BY mydate DESC LIMIT ".$page.", ".$nbCommParPage;
  9. $req = ...


 
cadeau bonux :

Code :
  1. $sql = "SELECT count(*) FROM commentaire_tbl";
  2. $res = mysql_query($sql);
  3. $nbPages = mysql_result($res,0,0) / $nbCommParPage;


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 10-03-2009 à 17:08:56    

Bah c'est possible en ajax ;)

Reply

Marsh Posté le 11-03-2009 à 11:53:47    

popotitagluck a écrit :

Le problème => J'aimerais qu'il y ait environ 10 commentaires par page dans l'ordre décroissant, du plus récent au plus vieux, et que si > de 10 commentaire, il y ai création d'une nouvelle "page" sans pour autant changer l'url.


Possible en CSS - si les guillemets soient "significatifs".
Tu crées tes liens page1...pagen, avec un span qui contient les pages. Le span est invisible à la base, et visible quand on fait un a:hover

Code :
  1. <a class="page" href=#>page 1<span>blah...(ici, tu utilises PHP pour mettre les 10 commentaires)</span></a>
  2. <a class="page" href=#>page 2<span>blahblah...</span></a>


CSS :

Code :
  1. .page span {display:none}
  2. .page:hover span {display:inline;position:fixed;float:right;}


Attention :
La page web récupère tous les commentaires.
Du coup, ça peut vite devenir lourd...
 
Sinon, il faut passer par du PHP - mais à ce moment là tu changes l'url (en rajoutant la page en paramètre) ou tu bidouilles avec les SESSIONS  :non:  
Ou combiner le PHP à du Javascript, et faire de l'AJAX...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed