Php/sql

Bonjour,

-----------------------------------------------------------------------
tri par artiste | tri par titre | tri par genre

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
------------------------------------------------------------------------

Si je clique sur tri par artiste il me fait un beau tri alphabetique et par la suite si je clique dur la lettre A , jai tous les artistes en A.

Si je clique sur tri par titre il me fait un beau tri alphabetique et par la suite si je clique dur la lettre F , jai tous les titre en F.

Ainsi de suite.............maiiiiiiiiisss..........comment dois je faire ?

je voudrais une cheminenemnt poru arrivé au resultat.....je ne vois pas comment faire ......merci
Configuration: Windows XP
Firefox 3.0

8 réponses

  1. Bonjour,

    C'est mon jour de bonté !!! Cadeau:
    <?php
    $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#';
    $liste_types = array('artiste','genre','titre');
    
    if (isset($_GET['type'])){
    	$type = $_GET['type'];
    } else {
    	$ltr = '';
    }
    //$add_type utilisée pour l'adresse de la page pour le type
    //$add_ltr utilisée pour l'adresse de la page pour la lettre
    $requete = 'SELECT * FROM ';
    
    switch ($type){
    	case 'artiste':
    		$requete .= 'artiste';
    		$add_type .= '?type=artiste';
    		$rech = 'Nom_Artiste'; //il s'agit du nom de ton champs utilisé pour la recherche
    	break;
    	case 'titre':
    		$requete .= 'titre';
    		$add_type .= '?type=artiste';
    		$rech = 'Intitule_Titre'; //il s'agit du nom de ton champs utilisé pour la recherche
    	break;
    	case 'genre':
    		$requete .= 'genre';
    		$add_type .= '?type=artiste';
    		$rech = 'Intitule_Genre';//il s'agit du nom de ton champs utilisé pour la recherche
    	break;
    }
    
    if (isset($_GET['ltr'])){
    	$ltr = $_GET['ltr'];
    	$add_ltr .= $ltr;
    	$requete .= " WHERE ".$rech." LIKE '".$ltr."%'";
    } else {
    	$ltr = '';
    }
    
    $LIENS_ALPHABET ='';
    $compteur = 0;
    while ($compteur < strlen($alphabet)){
    	$lettre = substr($alphabet, $compteur, 1);
    	$LIENS_ALPHABET .= '<a href="'.$add_type.'&ltr='.$lettre.'">'.$lettre.'</a>  ';
    	$compteur++;
    }
    
    $nbr_types = sizeof($liste_types);
    $compteur = 0;
    $LIENS_TYPES = '';
    while ($compteur <= $nbr_types){
    	$LIENS_TYPES .= '<a href="?type='.$liste_types[$compteur].'">'.$liste_types[$compteur].'</a> ';
    	$compteur++;
    }
    
    echo $LIENS_ALPHABET.'<br><br>';
    echo $LIENS_TYPES.'<br><br>';
    echo $requete;
    ?>


    1. $req = mysql_query("SELECT artiste FROM paroles ORDER BY artiste") or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
      $old_initiale = -1;
      while ($res = mysql_fetch_object($req))
      {

      $initiale = substr($res->artiste, 0, 1);

      if ($initiale != $old_initiale)
      {
      // Changement de lettre
      echo "<p class='gloss'><a name='$initiale'></a>";
      // Sauvegarde de cette nouvelle lettre pour prochaine rupture
      $old_initiale = $initiale;
      }

      if ($res->valid==YES)
      {
      $lien="<a href='../Data/$res->page'>$res->artiste</a>";
      }
      else
      {
      $lien="<B>".$res->artiste."</B>";
      }

      echo "<BR>$lien  ($res->nomLatin)\n";
      } // Fin du while

      COMMENT FAIRE pour avoir lettre pour chak lettre avec A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 #
      1. Bonjour,

        Pas besoin de changer de page !!!

        deux variables: tri=artiste&lettre=A

        Si tri n'est pas nul -> $lienlettre = 'tri=' & $tri
        Si lettre n'est pas nulle -> $ientri = 'lettre=' & $lettre

        Tu fais en sorte de faire le lien sur chaque lettre: page.php?lettre=A&tri=$tri
        SUr les types: page.php?tri=Artiste&lettre=$lettre

        En espérant t'avoir aidé !!!

        A bientôt.
        1. dsl je nais pas compris , ce que je fias ne marche pas ,jen conclu que je nai pas compris le code

          donc en bref , jai ma page paroles.php.
          jai deja cree un talbe sql avec : id , artistes, albume, titre, lyrics,genre comme champ.

          jessaye de combiné les deux réponse de code qui mont été donné mais je narrive pas .
          px tu mexpliké stp de nouvo...merci
        2. voila pour la lettre A , je fais cette requete
          $req = mysql_query("SELECT artiste FROM paroles WHERE artiste LIKE 'A%'")
          si jai bien compris la chose.....
          mais je change toujorus de page. il me faudrais faire en sorte que de toujours rester sur ma page parole.php
      2. bon dsl , ca na pas gardé les espaces .....je px te contact en privé par mal stp?
        1. oui tu peux sur samir_bogos@hotmail.com a partir de 19h merci
      3. oki super ca marche ......masi je viens de remarqué que jai mal fait mon site dans ce cas.....

        car il faudrait que sur ma page intituée "lyrics" une autre page souvre pour afficher la requete....tout en restant sur la page "lyrics" , or je crois que je serais obligé dafficher une autre page.....arf...

        jai séparé ma page " lyrics " en 4 tableau

        --------------------------------------------------------------------------
        | 1 |
        | TITRE |
        | |
        --------------------------------------------------------------------------
        --------------------------------------------------------------------------
        | | | |
        | 2 | a b c e f g h... | |
        | | | |
        | | | |
        | | | |
        | | 3 | 4 |
        | | | |
        | | | |
        | | | |
        --------------------------------------------------------------------------

        si je vx par exemple que le resultat de 3 saffiche dans 2.
        c a dire que je vx que ma liste en A saffiche dans 2 si je cliique sur la lettre A
        Tu vois la chose ?
        je px utiliser les hyperliens peut etre ?
        comment faire ?
        1. Bonjour ,

          Affichage des lettres rapides avec le lien qui correspond :

          <?php
          $array = range ('A','Z');
          ?>

          // contenu html

          <?php
          foreach($array as $val){?>

          <a href ="test.php?id=<?php $val?>"><?php echo $val;?></a>

          <?php } ?>

          // page test

          $req = select * from artiste where nom_artiste like '".$_GET['id']."%'.....

          Bon voila à peu près comment il est possible de faire !!!
          1. je voudrais ce resultat......
            https://www.paroles-musique.com/artistes-A-1
            mais moi je ne vx pas

            Listage direct des artistes : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 #
            Listage direct des titres : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 #
            Listage direct des traductions : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 #
            Listage direct des clips : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 #

            mais ca :

            tri par artiste | tri par titre | tri par genre

            A B C D E F G H I J K L M N O P Q R S T U V W X Y Z