Page 1 sur 1

PHP/SQL

Posté : 03 juil. 2008, 17:51
par maestro97uno
bonjour , alors voici mon probleme
je fais un site de son et je voudrais cela.
jai cree une table paroles avec comme champs : id , artiste , album , titre,lyrics , genre

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 #


jai reussit a faire laffichage des artiste pour la letter A avec le code suivant :

$req = mysql_query("SELECT artiste FROM paroles WHERE artiste LIKE 'A%'") 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 &nbsp;($res->nomLatin)\n";
						}

mais je voudrais pouvoir affiché toutes les lettres de lalphabet et faire en sortes que ca me donne une liste de sous liens tout en restant sur la meme page mais dans un autre cadre.....(ma page paroles.php est séparé en 4 tableau).
Je voudrais evité le fait douvrir une autres pas ou autre onglet , mais rester sur la page principale.


exemple dun site : http://www.paroles-musique.com/all/lyri ... iste-A.php


merci bcp.

Posté : 03 juil. 2008, 19:02
par Aureusms
Ce que tu peux faie est un lien avec un valeur GET :

Code : Tout sélectionner

<a href="mapage.php?liste=B" />B</a>
Dans ta page PHP tu mets
<?php

if (!empty($_GET["liste"]))
  {
  switch ($_GET["liste"])
    {
    case "A" :
    $requete = "SELECT artiste FROM paroles WHERE artiste LIKE 'A%'";
    break;

    case "B" :
    $requete = "SELECT artiste FROM paroles WHERE artiste LIKE 'B%'";
    break;

    //ainsi de suite
    
    defaut:
    //lecture par defaut
    break;
    }
    //ensuite tu applique ta requete comem précédemment
    $req = mysql_query($requete) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    //suite de ton code
  } ?>
L'avantage de ce code, la sécurisation via le switch. Le désavantage, c'est long à écrire.
Tu peux ainsi créer une variante avec

Code : Tout sélectionner

SELECT artiste FROM paroles WHERE artiste LIKE '$_GET["liste"]'"
Mais tu es obligé de tester si la variable $_GET["liste"] est bien ce que tu attend (une lettre de l'alphabet et une seule)