Page 1 sur 1

Probleme pagination pour livre d'or

Posté : 11 mars 2016, 21:07
par bebealsace91
Bonjour a tous,

Tout d'abord merci a celles et ceux qui tenteront de m'aider.
Pour faire court, j'essaie depuis plusieurs jours de créer un livre d'or avec moderation et pagination en PHP. Lorsque je test le code juste avec le livre d'or et la modération, tout fonctionne niquel.

Par contre j'ai un soucis avec la pagination, les numéros de page s'affichent bien mais ils ne prennent pas en compte les messages déja écrits. C'est a dire que j'essaie de limiter l'affichage a 5 messages par page, mais il affiche tous les messages sur toutes les pages.

Si quelqu'un pourrait me donner un coup de main ce serait sympa, surtout que je n'y connais rien en php.
Merci beaucoup a ceux qui m'aideront. (Et les commentaires désagréables, merci de les garder, je cherche de l'aide pas autre chose).
<?php

mysql_connect('db612894031.db.1and1.com','*********','*******');
mysql_select_db('db612894031');

$Msg = '';

if( count($_POST) > 0 ){
	
	if( empty($_POST['Pseudo']) ){
		
		$Msg = 'Vous devez saisir un pseudo.<br />';
	}
	
	if( empty($_POST['Message']) )
		$Msg .= 'Vous devez saisir un message';
		
	if( $Msg == '' ){
		
		$IsInsert = mysql_query('INSERT INTO messages VALUES ("0","'.mysql_real_escape_string(htmlspecialchars($_POST['Pseudo'],ENT_QUOTES)).'","'.mysql_real_escape_string(htmlspecialchars($_POST['Message'],ENT_QUOTES)).'",CURRENT_TIMESTAMP,0) ') or 0;
		
		if( $IsInsert != 0 ){
			
			$Msg = '<p style="color:green;font-weight:bold;">Votre message a bien été sauvegardé, il est en attente de modération.</p>';
		}
		else{
			
			$Msg = '<p style="color:red;font-weight:bold;">Il y a eu un soucis technique si le problème persiste merci de nous contacter. Veuillez réessayer ans quelque minutes.</p>';
			
		}
	}
	else{
		
		$Msg = '<p style="color:red;font-weight:bold;">'.$Msg.'</p>';
	}
}


echo '<h1>Un commentaire ? Un avis ? Une idée ? Une amélioration ? <br><br>Laissez votre message ici !</h1>'.$Msg.'

<p><a href="gestion.php">Modérer les messages</a></p>

<form action="" method="post">

                        	<div class="row">

                        	<div class="col-lg-6 field">
                          		<div class="form-group">
                          			<label for="Pseudo">Votre pseudo :</label>
                          			<input required type="text" name="Pseudo" class="form-control" id="Pseudo" value=""/>
                          		</div>
                          	</div>
                            
                        	<div class="col-lg-12 margintop10 field">
                          		<div class="form-group">
                          			<label for="Message">Votre message</label>
                          			<textarea required id="Message" name="Message" class="form-control" cols="60" rows="10"></textarea>
                          		</div>
                          	</div>
                            
                        	<div class="col-lg-12">
                          		<button type="submit" name="Send" value="Envoyer mon message" class="btn btn-theme margintop10 pull-left">Envoyer</button>
                         	 </div><br>
<br>
<br>
<br>
<br>


</form>';

//================
// 	Affichage des messages
//================
$LesMessages = mysql_query('SELECT * FROM messages WHERE PublierMessage=1 ORDER BY idMessage DESC');

if( mysql_num_rows($LesMessages) > 0 ){
	
	while( $UnMessage = mysql_fetch_array($LesMessages) ){
		
		$Date = date_parse($UnMessage['DateMessage']);
		
		echo '
		<div class="row">
        <div class="col-lg-12">
		
		<p>			
			Par <strong>'.$UnMessage['AuteurMessage'].'</strong> Le : <em>'.$Date['day'].'/'.$Date['month'].'/'.$Date['year'].'</em><br />
			'.nl2br($UnMessage['Message']).'
		</p>
		<hr />
		
		</div>
		</div>
		
		
		';
	}
}



$num_rec_per_page=5;
mysql_connect('db612894031.db.1and1.com','dbo612894031','Mikado91940');
mysql_select_db('db612894031');
if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; }; 
$start_from = ($page-1) * $num_rec_per_page; 
$IsInsert = "SELECT * FROM messages LIMIT $start_from, $num_rec_per_page"; 
$rs_result = mysql_query ($IsInsert); //run the query

$IsInsert = "SELECT * FROM messages"; 
$rs_result = mysql_query($IsInsert); //run the query
$total_records = mysql_num_rows($rs_result);  //count number of records
$total_pages = ceil($total_records / $num_rec_per_page); 

echo "<a href='livredor.php?page=1'>".'|<'."</a> "; // Goto 1st page  

for ($i=1; $i<=$total_pages; $i++) { 
            echo "<a href='livredor.php?page=".$i."'>".$i."</a> "; 
}; 
echo "<a href='livredor.php?page=$total_pages'>".'>|'."</a> "; // Goto last page



?>
Modération :
##edit : retrait des identifiants ;-)

Re: Probleme pagination pour livre d'or

Posté : 11 mars 2016, 21:25
par or 1
c'est dans cette requete :
$LesMessages = mysql_query('SELECT * FROM messages WHERE PublierMessage=1 ORDER BY idMessage DESC');
qu'il faut mettre un limit

ensuite, pour aller aux autres pages, il suffit d'une requete pour connaitre le nombre de messages.

Re: Probleme pagination pour livre d'or

Posté : 11 mars 2016, 22:00
par bebealsace91
Merci pour la réponse.
J'ai tenté de mettre un LIMIT mais ca me mets toujours une erreur sur cette ligne:
$LesMessages = mysql_query('SELECT * FROM messages WHERE PublierMessage=1 ORDER BY idMessage DESC');

Je vais essayé de me débrouillé même si c'est pas gagné ! Et si je n'y arrive pas je redemanderais sur le forum.
Merci pour la piste