probleme de liaison de pages

Eléphanteau du PHP | 10 Messages

15 mars 2010, 12:58

bonjour, je suis débutant, et j'ai un soucis de liaison de page. mon script a un soucis sur les calcul de pages (je crois). tout fonctionne comme sur des roulettes, mon script me calcule bien le nombre de page qui dois s'afficher sur le bas de ma page en fonction du nombre de données. j'ai bien les pages qui s'affiche en bas, mais des que je clique sur la page 2 par exemple, je ne peux pas y aller. je reste toujours sur la page 1. mon second probleme est que la date ne s'affiche pas. pouvez vous m'aider merci. voici mon script :
<h2><a href="redigerlieudedrague.php">Ajouter un lieu</a></h2>
</body>
<?php

// on se connecte à notre base
$base = mysql_connect ('localhost', '', '');
mysql_select_db('');

// lancement de la requête. on sélectionne les lieux que l'on va ordonner suivant l'ordre des département et des villes  tout en ne sélectionnant que le nombre voulu de lieux à afficher sur chaque page (LIMIT)
$sql = 'SELECT Email, Pseudo, Departement_du_lieu, Ville, Description, Acces_au_lieu, Commentaire FROM lieudedrague ORDER BY Departement_du_lieu LIMIT 0, 5';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on compte le nombre de lieux stockés dans la base de données
$nb_news = mysql_num_rows($req);

if ($nb_news == 0) {
	echo 'Aucun lieu enregistrée.';
}
else {
	// si on a au moins un lieu, on l'affiche
	while ($data = mysql_fetch_array($req)) {

		 

		// on affiche les résultats
		
		echo '<br />DEPARTEMENT : ' , htmlentities(trim($data['Departement_du_lieu'])) , '';
		echo 'VILLE : ' , htmlentities(trim($data['Ville'])) , '<br />';
		echo 'ACCES AU LIEU : ' , htmlentities(trim($data['Acces_au_lieu'])) , '<br />';
		echo 'DESCRIPTION : ' , htmlentities(trim($data['Description'])) , '<br />';
		
		echo 'COMMENTAIRE : ' , nl2br(htmlentities(trim($data['Commentaire']))) , '<br />';
		echo 'Posté le : ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , ':' , $sec , '';echo 'Par : ' , htmlentities(trim($data['Pseudo'])) , '<br />';
 
	}
}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);

// on ferme la connexion à la base de données
mysql_close ();

?>  

<?php
 // Fin de la boucle qui liste les lieux de dragues
// on créer des pages au fur et a mesure et
// On écrit les liens vers chacune des pages
// -----------------------------------------
 mysql_connect("localhost", "", "");
mysql_select_db("");  
// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 5; 
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM lieudedrague');
$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 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)

{
    echo '<a href="listelieudedrague.php?page=' . $i . '">' . $i . '</a> ';
}


 
 



// On se déconnecte de MySQL
        mysql_close();
?>
</div>

Mammouth du PHP | 672 Messages

15 mars 2010, 13:37

Bonjour.

- Pour les pages tu as fait la moitié du boulot (la plus facile).
Maintenant, si tu ne récupéres pas le numéro de la page, forcément tu ne peux rien en faire...

En gros - et sans sécurisation :
// A placer en début de script
$mapage = $_GET['page'];
...
// lancement de la requête. on sélectionne les lieux que l'on va ordonner suivant l'ordre des département et des villes  tout en ne sélectionnant que le nombre voulu de lieux à afficher sur chaque page (LIMIT)
// ET ON FIXE LE DEBUT, sinon on prend toujours les 5 premières !!!
$sql = 'SELECT Email, Pseudo, Departement_du_lieu, Ville, Description, Acces_au_lieu, Commentaire FROM lieudedrague ORDER BY Departement_du_lieu LIMIT '.$mapage.', 5';
- Pour ton problème de date qui ne s'affiche pas, j'ai peut-être mal lu, mais si c'est cette ligne qui te pose problème :
echo 'Posté le : ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , ':' , $sec , '';
Il faudrait m'expliquer à quel endroit tu renseigne tes variables :mrgreen:

Eléphanteau du PHP | 10 Messages

16 mars 2010, 22:35

merçi pour ta réponse, mais j'ai essayé et ça ne marche toujours pas.

Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

16 mars 2010, 23:55

... mon second probleme est que la date ne s'affiche pas.
Modération :
Si tu as une autre question ouvre un nouveau sujet,
cela te permettra d'avoir plus de réponses.

En plus, tu pourras mettre [Résolu] dès que ton problème évoqué ici sera réglé.

Merci de prendre le temps de lire les règlements.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

17 mars 2010, 00:11

Un sujetpour t'aider à y voir plus clair :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute