Tri par nom dans une table sql avec php et ht

Fermé
juloet - 16 mars 2010 à 11:29
Lilouse64 Messages postés 99 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 9 avril 2012 - 16 mars 2010 à 14:38
Bonjour,

je n'ai pas trouvé ou je ne cherche peut être pas bien mais j'ai une table sql avec un champ nom que j'affiche jsque la tout va bien !
j'aimerai pouvoir afficher la liste de nom en fonction de la lettre sur laquelle je vais cliquer dans ma page HTML comment faire?
exemple
A B C D E F G .....
lorsque je veux cliquer sur le A je ne veux que la liste de noms commençant par A

merci de votre aide

3 réponses

Lilouse64 Messages postés 99 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 9 avril 2012 12
16 mars 2010 à 11:35
Il te suffit que dans ta recherche tu marque
WHERE UPPER(nomvariable)="A%" pour la lettre A le % remplace une chaine de caractère.

La fonction upper te permet d'avoir ton nom de variable en majucscule et donc il n'y a pas de différence si ton nom commence par A ou a.
0
ça c'est pour la fonction en php mais comment lui indiquer avec une variable qui viendrait de la page HTML ?

comment faire le formulaire ?
je ne sais pas pour avoir ça :: A B C D .... en cliquant sur la lettre comment écrire la page html et de renvoyer à la page php le nom de la variable
Clairement je ne sais pas comment l'écrire dans un formulaire html
0
Lilouse64 Messages postés 99 Date d'inscription lundi 1 mars 2010 Statut Membre Dernière intervention 9 avril 2012 12
16 mars 2010 à 14:38
Ce que je t'ai donné c'est en sql et non en php, il te faut bien une requête sql pour interroger ta base. Tu exécute ta requête avec mysql_query dans ta page en php.

Pour chaque page tu peux mettre dans l'url ta lettre par exemple que tu récupère avec la méthode get puis dans ta page tu exécute la requête correspondante à la lettre de ton url. Par défaut c'est bien sur le a s'il y en a pas.

Pour tes liens de lettre il faudra donc mettre "tapage.php?page=A" pour la lettre A etc ...
Pour récuperer ta variable c'est $_GET['page']

ce qui donnerais au final :
<?php
// Récupérer la variable dans le lien
if (isset($_GET['page'])){ // pour vérifier si ta variable est présente dans l'url
$page = $_GET['page'];
} else { // s'il n'y a pas de lettre dans l'url
$page = "A";
}
?>

un peu plus loin la ou tu affiche tes lettres
<a href="tapage.php?page=A">A</a> <a href="tapage.php?page=B">B</a> ... <a href="tapage.php?page=Z">Z</a>

<?php
// l'affichage de ta liste

// Connexion à la base de données
mysql_connect($host, $loginBD,$pswBD) or die("Erreur de connexion au serveur");
mysql_select_db($bdd) or die("Erreur de connexion a la base de donnees");

// Execution de ta requete
$query="SELECT elementquiseraaffiche FROM TABLECONCERNE WHERE nomvariable='".$page."%'";
$result=mysql_query($query) or die("Requète non exécutée : ".mysql_error());

// Affichage de ton ou tes éléments
while($row=mysql_fetch_array($result)){
echo $row[0]."</br>"; // s'il y a d'autre élément tu peux bien sur les afficher aussi...
}

?>


EDIT : apres une petite recherche pour placer tes lettres tu peux aussi le faire dans une boucle :
<?php
for ($i='65';$i<='90';$i++){ // le 65 correspond à A et 90 à Z en code ASCII
echo "<a href=\"tapage.php?page=".chr($i)."\">".chr($i)."</a>";
}
?>
0