Tout d'abord bonjour à tous, et un grand bravo pour ce site extra!

Alors voila, je suis nouveau ici, et je voulais vous solliciter pour m'aider dans mon problème.

Pour faire bref, j'ai une table contenant une liste de groupe de musique avec plusieurs champs (id, nom, genre, biographie...)
Ce que j'aimerai faire, c'est créer une recherche par initiale (tous les groupes dont le nom commence par "A", "B",..."Z")

Je me suis donc mis en tête de trouver une requête SQL me permettant de le faire directement.

Après quelque recherche sur le net et dans les bon vieux bouquin, j'ai décidé de passer par la commande LIKE.
Voici donc mon code:

$sql="SELECT * FROM artistes WHERE nom LIKE '$lettre%'";
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    while($data=mysql_fetch_assoc($req)){
        echo "<h3>{$data"nom"]}</h3>";
        echo "<h5>{$data"genre"]}</h5>";
        echo "<p>{$data"description"]}</p>";
        echo "<p>{$data"video"]}</p>";
        echo "<p align\"right\">".date("j/M/Y G:i",strtotime($data"date"]))."</p>";
        echo "<hr/>";
    }

Donc pour tout vous dire, cette requête ne me retourne absolument rien. Par contre, si je change le LIKE par ORDER BY ASC, la requête me retourne bien tous les artistes (commençant par A, B, C... et dans l'ordre alphabétique).

J'ai aussi essayé en passant par des conditions avec substring, mais rien n'y fait...

Donc si quelqu'un à une idée où a repérer une erreur dans le code, je suis preneur!

3 réponses


pierrot
Auteur
Réponse acceptée

Le truc, c'est que le ORDER BY affiche tout les groupes contenu dans ma table "nom", et ce, par ordre alphabétique. Or dans l'idée, je voudrais que l'internaute puisse choisir de séléctionner QUE les artistes par sont initiale ou par le genre.
En tout cas merci beaucoup pour la rapidité de vos réponses.
Et le code fonctionne finalement. J'avais juste un problème vraiment stupide... Dans ma requette, j'avais oublié de mettre un "s" à "nom", car dans ma table, c'est "noms"... (c'est énervant quand l'erreur est toute bête...)

En tout cas encore merci pour vos réponses!

Salut,

Bah si ça marche avec ORDER BY pourquoi tu t'embêtes??

A+

Et que contient ta variable $lettre ?