Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2011, 16h24   #1
Invité de passage
 
Inscription : juin 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 12
Points : 2
Points : 2
Par défaut Faire une recherche par la première lettre (ou chiffre) d'une liste

Bonjour !

Depuis peu, je cherche un moyen de rechercher par la première liste des mots de ma base de données. J'ai réussi à afficher une liste sans grand effort grâce à cette fonction toute simple :

Code :
1
2
3
4
5
6
7
<?php
echo "0/9";
for ($i=ord("A");$i<=ord("Z");$i++)
   {
      echo ' - <a href="recherche_tests.php?lettre='.chr($i).'">'.chr($i).'</a> ';
   }
?>
Je sais qu'il n'est pas du tout optimisé (2 écho...) mais il y a une raison... En fait, je connais la fonction pour trier par la première lettre des mots, mais pas si ces mots commencent par un chiffre (exemple simple : 50 Cents). Dans ce cas là, impossible de retrouver ce terme dans la recherche. Je cherche alors un moyen simple d'afficher les éléments de ma base de données qui commencent par quelque chose autre que par une lettre de l'alphabet.

Quelque chose pour me mettre sur la voie ? Merci d'avance !
Rowmanow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 17h08   #2
Membre régulier
 
Inscription : novembre 2010
Messages : 102
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 102
Points : 86
Points : 86
Regardes la fonction sort()
Soull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 17h23   #3
Invité de passage
 
Inscription : juin 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 12
Points : 2
Points : 2
Ah ça a l'air de s'y approcher !

Donc j'ai récupéré un bout de code que j'ai arrangé comme ça :

Code :
1
2
3
4
5
<?php $chiffres = array("04","6","031","7","041");
sort ($chiffres);
foreach ($chiffres as $key => $val) {
  echo $val." ";
} ?>
Et ça donne ce résultat :

Citation:
04 - 6 - 7 - 031 - 041
Le problème c'est que j'aimerais que ça soit trié comme si c'était en ordre alphabétique et non pas si c'étaient des nombres, donc ça devrait donner ça :

Citation:
031 - 04 - 041 - 6 - 7
Autre piste ? Quelque chose à changer dans le morceau de code ?

EDIT : Bon j'ai trouvé comment faire pour que ça soit trié par "lettre" et non pas par "valeur du nombre" :

Code :
1
2
3
4
5
<?php $chiffres = array("04","6","031","7","041");
sort ($chiffres,SORT_STRING);
foreach ($chiffres as $key => $val) {
  echo $val." ";
} ?>
Maintenant, comment cela pourrait-il marcher après une demande SQL pour le tri ?

Code :
SELECT * FROM jeux WHERE titre LIKE '%A'
Ca c'est pour les lettres, comment faire pour adapter au code pour récupérer les jeux avec le titre commençant par des numéros ?
Rowmanow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 21h04   #4
Membre régulier
 
Inscription : novembre 2010
Messages : 102
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 102
Points : 86
Points : 86
T'y mets dans un tableau, on va dire tab[] pis tu fais sort ($tab['titre'],SORT_STRING);
ça marches pas?
Soull est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 21h17   #5
Invité de passage
 
Inscription : juin 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 12
Points : 2
Points : 2
Est-ce que je peux créer un tableau avec mysql_fetch_array des résultats que je recherche pour ensuite utiliser le résultat avec le code que j'ai utilisé avant ?
Rowmanow est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h22.


 
 
 
 
Partenaires

Hébergement Web