Bonjour,

Je me lance dans la création d'un site web et donc mes connaissances sont assez limitées.
Je désire créer une liste (où chaque élément de la liste sera accompagné d'un lien) qui s'étalerai sur plusieurs pages. Chaque page se limiterai a 20 éléments par exemple

Dès lors, je me demande est-ce qu'il est possible de rajouter au fur et a mesure, des éléments à cette liste de manière à ce que les plus récents apparaissent sur la première page et que les plus anciens basculent automatiquement sur une nouvelle page lorsque l'on dépasse 20 éléments?
Le résultat attendu serait celui-ci:

Page 1
-Elément 12 (le plus récent)
-Elément 11
-Elément 10
-Elément 9
-Elément 8
-Elément 7
-Elément 6
-Elément 5
-Elément 4
-Elément 3

Page 2
-Elément 2
-Elément 1 (le plus ancien)

Pouvez-m'indiquez des pistes afin d'obtenir ce résultat.
Merci d'avance.
Bonjour,

Tout dépends de la construction de ton site. Si tu utilises une DB, alors la pagination se fera en modifiant la requete SQL qui récupère les données (avec LIMIT 20 pour la première page, par exemple).
Administrateur
Bonjour,

DB = Database = Base de données
SQL = le langage qui permet de manipuler les bases de données (où sont stockées tes infos comme tes liens, que l'outil te le dise ou pas c'est là que ce sera stocké Smiley smile )

Le terme technique de ce que tu décris est 'pagination'. Je sais qu'un gestionnaire de contenu (CMS) comme SPIP propose de gérer de "petites" infos comme une liste de liens à part de ce qui est articles et rubriques du site (si on a 13 articles et 900 liens tout mélanger est compliqué). D'autres CMS également à coup sûr. Paginer NN éléments par page n'est alors pas bien compliqué en général, c'est prévu pour.
Le langage (la syntaxe) de SPIP est plutôt facile d'accès (en français lisible, modérément technique) mais il faut bien évidemment savoir que doit faire le reste de ton site avant de te le conseiller Smiley smile
Bonjour,

Je me suis penchée sur les gestionnaires de contenu (CMS) notamment wordpress. Cependant, est-il possible d'utiliser le CMS que sur une partie d'une site parce que j'ai déjà réaliser mes pages avec dreamweaver et je me vois pas trop recommencer le tout avec wordpress ?

Merci en tout cas pour vos réponses
tout compte fait je vais essayer avec les DB. Cependant, par rapport au résultat souhaité, comment insérer un lien pour chaque element de ma liste ? Via une requête sql, j'arrive à obtenir la liste mais je ne peux pas intégrer de lien.
Salut Fanyyy974,
J'espère que ça va.

En ce qui concerne ta dernière question, le truc qu'il faudrait c'est que tes liens soient eux aussi contenu dans ta DB, de préférence dans la même table que les éléments de ta liste.

De ce fait lorsque tu vas extraire via SQL les éléments de ta liste pour les afficher, tu extrairas également les liens correspondant à chaque élément.

Si tu as déjà un code de prêt, ce serait bien de le poster ici, comme ça on pourra t'aider à le structurer.

Voili voilà,
En espérant t'avoir aider,

Peace
++

Miister Tii
Merci Miister Tii pour ta réponse Smiley smile . J'ai inséré un champs lien dans ma BDD en type varchar (par contre je ne suis pas sûr que ce soit la bonne démarche. J'arrive a obtenir le résultat souhaité, mais quand je clique sur un élément, je retombe sur la page où je suis! J'ai du faire une erreur mais je ne vois pas laquelle.


<?php

$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('bddtest', $base);

$sql = 'SELECT count(*) FROM test';
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

$nb_total = mysql_fetch_array($resultat);
if (($nb_total = $nb_total[0]) == 0) 
	{
	echo 'Aucune réponse trouvée';
	}
	else 
	{
 	if (!isset($_GET['debut'])) $_GET['debut'] = 0;

	$nb_affichage_par_page = 50;

 	$sql = 'SELECT titre, artiste FROM test ORDER BY date DESC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;

 	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 		while ($data = mysql_fetch_array($req)) 
		{
		echo '<a href="' . $data['liens'] . '">' . $data['titre'] . " - " . $data['artiste'] . '</a><br/>';
		}
		
	mysql_free_result ($req);

	echo '<div class="pagination">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 6).'</div>';
	}
	
mysql_close ();

?>


Il y a une partie pagination dans le code mais à ce niveau là tout est ok c'est juste au niveau du lien où j'ai des soucis
Modifié par Fanyyy974 (20 Dec 2010 - 15:36)
Salut Fanyyy974,

Alors ton code m'a l'air correct... simplement c'est "normal" que tes liens ne marchent pas car dans cette ligne de code :

$sql = 'SELECT titre, artiste FROM test ORDER BY date DESC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page; 


Tu demandes uniquement la sélection des champs titre et artiste et pas des champs liens.

Essai de rajouter le champ liens juste après artiste, et en principe tout devrait marcher Smiley cligne
Modifié par MiisterTii (20 Dec 2010 - 16:10)
oui effectivement c'était un oubli de ma part qui a tout résolu Smiley biggrin

merci beaucoup miister tii

du coup, je profite de ton expérience pour une autre question. Toujours dans le même principe d'une pagination, au lieu de réaliser :
Element 3
Element 2
Element 1
...

Est-il possible de faire:
Element 3:
- image
- description
- lien
Element 2:
- image
- description
- lien
Element 1:
- image
- description
- lien

Avec un système de pagination automatique ou il y'aurai par exemple 4 elements par page.

En tout cas, merci beaucoup parce que ça faisait un petit moment que je cherchais à faire un système de pagination avec des liens.
Modifié par Fanyyy974 (20 Dec 2010 - 16:56)
Effectivement tu peux tout à fait faire ce genre de structure :
Element 3:
- image
- description
- lien
Element 2:
- image
- description
- lien
Element 1:
- image
- description
- lien

La méthode est la même que pour :
Element 3
Element 2
Element 1

Il suffit juste de rajouter des champs (image, description, lien) à la table de ta DB. Et après tu les extrais de la même manière que tu as fais précédemment.