IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

pagination triée par première lettre [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut pagination triée par première lettre
    Bonsoir, j'ai une question juste sur la procédure a suivre pour trouver mon bonheur en terme de fonction.
    Je doit afficher des enregistrements de mysql ce qui n'est pas trop compliquer mais en effectuant une pagination par lettre.
    En gros trier les enregistrements et les afficher par leur première lettre.
    Comme ceci : http://www.eurocenter.be/fr/Lexique/electro/A.aspx
    Le problème c'est que je ne sais pas par ou commencer concernant les fonctions ou procédure a utilisée afin d'effectuer cette tâche.
    Dois-je utiliser un tableau pour trier ou autre chose
    Sans oublier qu'il me faut exactement la même pagination que sur le site citer plus haut
    ps: j'utilise smarty pour l'affichage.

  2. #2
    Membre expérimenté Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Par défaut
    Bonjour,

    Voici peut-être une solution qui utilise deux requêtes mysql
    La 1ere permet de créer le menu via un SELECT SUBSTRING(test,1,1)
    La seconde permet de récupérer les enregistrements qui commences par la lettre récupérer via $_get.

    J'ai commenté un peu le code de la fonction.

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    function lexicoNav($db,$table){
     
    	/**
    	 * PS. Pour info ma table s'appelle "test" et
    	 * Mon champs aussi, ma page aussi'
    	**/
     
    	//LINK
    	mysql_select_db($db);	
     
    	//INITIALISATION
    	//Si on a les variables get alors on les charges
    	if(isset($_GET['lettre'])){
    		$lettre=$_GET['lettre'];
     
    	//sinon on applique une lettre a
    	}else{
    		$lettre="a";
     
    	}
     
    	//REQUÊTES
    	//Permet d'isoler la première lettre d'un champ de façon à obtenir la navigation
    	$sql1=mysql_query("SELECT SUBSTRING(test,1,1) AS lettre FROM $table GROUP BY lettre ");
    	//Permet d'isoler la 1ere lettre d'un champ
    	$sql2=mysql_query("SELECT test FROM $table WHERE LEFT(test , 1) = \"$lettre\" ") or die ("".mysql_error()); 
     
     
    	//CREATION DE LA PAGINATION
    	//Récupération des lettres distinctes et envoie de l'info par $_GET'
    	//Si la lettre est présente dans la requête, on l'affiche'
    	while($row=mysql_fetch_row($sql1)){
    		echo '<a href="test.php?lettre='.$row[0].'">'.$row[0].'</a> '."\n";
     
    	}
    	echo '<br/>'."\n";
     
    	//Affichage des enregistrements
    	while($alphabet=mysql_fetch_row($sql2)){
    		echo $alphabet[0].'<br/>'."\n";
    	}
     
     
     
    }
    //Appel de la fonction
    //1ere variable = Base de données
    //2eme variable=Table
    lexicoNav("test","test");
     
    ?>

    Je pense que ça devrait convenir.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Votre exemple est parfait et j'ai su en tirer profit avec ma requête très complexe (bourrer de jointure)
    Je vous remercie
    ps : super les commentaires

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Onglet avec trie par Lettre alphabétique
    Par joebar0212 dans le forum 4D
    Réponses: 3
    Dernier message: 02/11/2010, 19h51
  2. Réponses: 22
    Dernier message: 23/07/2010, 10h25
  3. Sélection item DataGrid par la première lettre
    Par vestan dans le forum Flex
    Réponses: 0
    Dernier message: 19/06/2010, 10h56
  4. [MySQL] Requête de sélection par rapport à la première lettre d'un champ
    Par herve911 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/01/2008, 01h31
  5. Réponses: 3
    Dernier message: 17/08/2006, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo