Apprendre comment créer un site Web pour les débutants


Gamme cours gratuit en HTML XHTML CSS et PHP

Recherche personnalisée

Site optimisé pour Firefox - Navigateur Internet gratuit

New Year's Web Hosting



Annuaire Webmaster

Comment faire un affichage page par page

Ce tutorial va donc vous apprendre à créer une barre de navigation.

Vous savez déjà que le SQL permet d'ordonner les résultats grâce à l'ORDER BY.

Lorsque l'on utilise une base de données, il arrive souvent que l'on fasse des requêtes sur cette base de données et que l'on obtienne des dizaines voir des centaines de résultats.
Jusqu'ici, vous faisiez une boucle while pour parcourir l'ensemble de vos résultats que vous affichiez sur une même page.

Ce tutorial va donc vous apprendre à créer une barre de navigation.

Vous savez déjà que le SQL permet d'ordonner les résultats grâce à l'ORDER BY.

Ce que vous ne savez peut être pas, c'est que le SQL permet, lors d'une sélection sur une table, de limiter le nombre de résultats obtenus grâce à la commande LIMIT.

Pour concrétiser tout cela et donc de voir comment fonctionne cette commande LIMIT, nous allons créer une table catalogue permettant de lister tous les DVD d'une collection par exemple.

On pourrait avoir alors la structure suivante :

Requête SQL pour la table catalogue :

 CREATE TABLE catalogue (
id int(11) NOT NULL auto_increment,
titre text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

Remplissons alors cette table avec différents dvd :

Requête SQL pour le contenu de catalogue :

 
INSERT INTO catalogue VALUES (1, ' Inglourious basterds');
INSERT INTO catalogue VALUES (2, 'Terminator 4 Renaissance');
INSERT INTO catalogue VALUES (3, 'Transformers 2');
INSERT INTO catalogue VALUES (4, 'Le Réveil du Cobra');
INSERT INTO catalogue VALUES (5, 'Public enemies');
INSERT INTO catalogue VALUES (6, 'L'Âge de glace 3');
INSERT INTO catalogue VALUES (7, 'Le Temps des dinosaures');
INSERT INTO catalogue VALUES (8, 'Harry Potter 6');
INSERT INTO catalogue VALUES (9, 'les disparus');
INSERT INTO catalogue VALUES (10, 'Prison break');

Pour faire une requête simple permettant d'afficher tous les DVD de ce catalogue sur une même page WEB, et ce, en classant les DVD par ordre alphabétique, ce qui donnerait le

code suivant de la page index.php:

 
<html>
<head>
<title>Les DVD du catalogue</title>
</head>
<body>
Les différents DVDs DVD du catalogue:<br /><br />
<?php
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db ('nom_base', $base);
// Préparation de la requête
$sql = 'SELECT titre  FROM catalogue ORDER BY titre ASC';
// 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 DVD contenu dans la base de données
$nb_DVDs = mysql_num_rows($req);
if ($nb_DVDs == 0) {
echo 'Aucun DVD enregisté.';
}
else {
echo '<table><tr><td>Titre</td></tr>';
// on va scanner toutes les entrées un par un
while ($data = mysql_fetch_array($req)) {
// on affiches les résultats dans la <table> 
echo '<tr><td>' , htmlentities(trim($data['titre'])) , '</td></tr>';
}
echo '</table>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
// on ferme la connexion à la base de données. 
mysql_close ();
?>
</body>
</html>

Introduction de la commande LIMIT.

LIMIT va vous permettre de limiter le nombre de résultats à afficher d'une requête SQL donnée.

En effet, vous allez pourvoir, par exemple, n'afficher que les 3 premiers DVD de la table.

Reprenons donc le code précédent, et changeons la requête SQL par la requête suivante :

 SELECT titre  FROM catalogue ORDER BY titre ASC LIMIT 0,3

Explication :

  • - on fait cette sélection sur la table catalogue (FROM catalogue)
  • - on ordonne les résultats dans l'ordre alphabétique des titres (BY titre ASC)
  • - on sélectionne juste 3 DVD à partir du 0 DVD, soit du premier DVD (LIMIT 0,3)

En résumé pour le LIMIT x,y :

On sélectionne y éléments et ce, à partir du (x+1) ème élément.

Bien sur, tout dépend de l'ordre dans lequel on fait notre requête : ORDER BY ... ASC ou ORDER BY ... DESC (ordre croisant ou décroissant).

En effet, si on a un ORDER BY ... DESC (ordre décroissant), on prendra en fait les y éléments qui arrivent juste avant le (x+1) ème élément.

En effet, notre affichage page par page va en fait refaire plusieurs fois la même requête SQL avec un LIMIT x,y sauf qu'à chaque fois, et donc à chaque page, le paramètre x va changer.

Précèdent…...Précèdent...  	Vous êtes ici:Comment faire un affichage page par page	Suivant…suivant…

						


Vous pouvez copier, modifier des copies de cette page, tant que cette note apparaît clairement
Vous devez citer le nom de l'auteur original et faire un lien hypertexte vers http://apprendre.uuuq.com


Valid XHTML 1.0 Transitional Annuaire gratuit pour webmasters



Consultez mes statistiques

Ce site est listé dans la catégorie Web designer : Aides et tutoriels création web de l'annuaire Referencement organique et Les actualités du Dicodunet


Publicite Afrique
Aquitaweb > L'Aquitaine a référencé ce site Annuaire généraliste Glaneur.fr

petites annonces gratuites

Meilleur du Web : Annuaire des meilleurs sites Web. publimaxi.com: affichez vos sites au maximum ! !
Moteur de Recherche. Inscription Gratuite.
Le Moteur
Recherche-Web
référencement gratuit
•  référencement  •    positionnement    •  référencement manuel professionnel discount  •
annuaires et moteurs

referencement gratuit royaume