Abécédaire dynamique
14 messages
• Page 1 sur 1
- webcrea
- WRInaute discret

- Messages: 53
- Inscription: 1 Sep 2003
Abécédaire dynamique
Bonjour,
Quelqu'un saurait-il comment réaliser un abécédaire dynamique (PHP Mysql) ?
C'est à dire générer l'alphabet et tous les chiffres (chaque lettre et chaque chiffre correspondant à une page dédiée) et avoir sur "la page des a" par exemple uniquement les films (de ma BDD) commençant par "a", tout en évitant les "des", "le", "les" ou "l" au début des titres quand il y en a.
Merci pour votre aide.
Quelqu'un saurait-il comment réaliser un abécédaire dynamique (PHP Mysql) ?
C'est à dire générer l'alphabet et tous les chiffres (chaque lettre et chaque chiffre correspondant à une page dédiée) et avoir sur "la page des a" par exemple uniquement les films (de ma BDD) commençant par "a", tout en évitant les "des", "le", "les" ou "l" au début des titres quand il y en a.
Merci pour votre aide.
-

absoluteweb - WRInaute occasionnel

- Messages: 478
- Inscription: 22 Nov 2002
Bonjour,
Pour la liste alpha numérique déjà, tu définis une variable texte qui sera automatiquement un tableau et tu boucles sur la longueur du tableau :
$alpanum = "ABCDEF...Z0123456789";
for($i=0;$i<len($alphanum);$i++) {
}
Pour la requête sur la lettre, en dehors de lister tous les cas possibles, je ne vois pas :
... WHERE champ LIKE 'A%' OR champ LIKE 'Le A%' OR champ LIKE 'Des A%' etc..
Nicolas.
Pour la liste alpha numérique déjà, tu définis une variable texte qui sera automatiquement un tableau et tu boucles sur la longueur du tableau :
$alpanum = "ABCDEF...Z0123456789";
for($i=0;$i<len($alphanum);$i++) {
}
Pour la requête sur la lettre, en dehors de lister tous les cas possibles, je ne vois pas :
... WHERE champ LIKE 'A%' OR champ LIKE 'Le A%' OR champ LIKE 'Des A%' etc..
Nicolas.
-

absoluteweb - WRInaute occasionnel

- Messages: 478
- Inscription: 22 Nov 2002
Si la base est déjà constituée et qu'elle comporte des milliers d'enregistrement, bonjour le boulotyazerty a écrit:Faire 2 champs dans ta table : titre_affiche - titre_abecedaire (sans les pouich) :- ?
Si la base n'est pas faite ou qu'il y a peu d'enregistrement c'est une bonne solution car cela permettrait également de trier les résultats correctement pour une lettre donnée.
Nicolas.
- webcrea
- WRInaute discret

- Messages: 53
- Inscription: 1 Sep 2003
la base existe déjà !
Impossible de faire ce que vous me conseillez.
Je teste de cette manière :
WHERE titre LIKE '$lettre%' OR titre LIKE 'La $lettre%' OR titre LIKE 'L\'$lettre%' comme décrit plus haut mais pour le titre "La planète des singes" par exemple, il figure sous la lettre P et la lettre L également.
Comment résoudre ce pb ?
Impossible de faire ce que vous me conseillez.
Je teste de cette manière :
WHERE titre LIKE '$lettre%' OR titre LIKE 'La $lettre%' OR titre LIKE 'L\'$lettre%' comme décrit plus haut mais pour le titre "La planète des singes" par exemple, il figure sous la lettre P et la lettre L également.
Comment résoudre ce pb ?
-

jerome347 - WRInaute impliqué

- Messages: 573
- Inscription: 19 Mar 2004
WHERE titre LIKE '$lettre%'
if($lettre != "L") { OR titre LIKE 'La $lettre%' OR titre LIKE 'L\'$lettre%' }
if($lettre != "D") { OR titre LIKE 'Des $lettre%' OR titre LIKE 'D\'$lettre%' }
if($lettre != "U") { OR titre LIKE 'Un $lettre%' OR titre LIKE 'Une $lettre%' }
...
if($lettre != "L") { OR titre LIKE 'La $lettre%' OR titre LIKE 'L\'$lettre%' }
if($lettre != "D") { OR titre LIKE 'Des $lettre%' OR titre LIKE 'D\'$lettre%' }
if($lettre != "U") { OR titre LIKE 'Un $lettre%' OR titre LIKE 'Une $lettre%' }
...
-

absoluteweb - WRInaute occasionnel

- Messages: 478
- Inscription: 22 Nov 2002
WHERE (champ LIKE 'L%' AND champ NOT LIKE 'La %' AND champ NOT LIKE 'Le %' AND ...) OR champ LIKE 'La L%' OR champ LIKE 'Le L%' OR ...
- webcrea
- WRInaute discret

- Messages: 53
- Inscription: 1 Sep 2003
Je le teste dans tous les sens mais j'obtiens toujours le même problème.
Voici le code que j'ai mis en place sur vos conseils :
Une autre idée peut-être ?
Voici le code que j'ai mis en place sur vos conseils :
- Code: Tout sélectionner
if ($lettre == "l")
{ $where = " AND titre NOT LIKE 'La $lettre%' AND titre NOT LIKE 'Le $lettre%' AND titre NOT LIKE 'Les $lettre%' AND titre NOT LIKE 'L\'$lettre%'"; }
else
{ $where = " OR titre LIKE 'La $lettre%' OR titre LIKE 'Le $lettre%' OR titre LIKE 'Les $lettre%' OR titre LIKE 'L\'$lettre%'"; }
$select = "select id_film,titre,description from films WHERE titre LIKE '$lettre%' $where";
Une autre idée peut-être ?
-

absoluteweb - WRInaute occasionnel

- Messages: 478
- Inscription: 22 Nov 2002
absoluteweb a écrit:WHERE (champ LIKE 'L%' AND champ NOT LIKE 'La %' AND champ NOT LIKE 'Le %' AND ...) OR champ LIKE 'La L%' OR champ LIKE 'Le L%' OR ...
- webcrea
- WRInaute discret

- Messages: 53
- Inscription: 1 Sep 2003
Merci Absoluteweb mais avec ce code, seuls les titres commençant vraiment par "L" apparaissent sous toutes les lettres (et aucun autres titres).
C'est vraiment difficile !!
C'est vraiment difficile !!
- Code: Tout sélectionner
$where = "WHERE (titre LIKE 'L%' AND titre NOT LIKE 'La %' AND titre NOT LIKE 'Le %' AND titre NOT LIKE 'L\'%') OR titre LIKE 'La L%' OR titre LIKE 'Le L%'";
$selabc = "select id_film,titre,description from films $where";
-

absoluteweb - WRInaute occasionnel

- Messages: 478
- Inscription: 22 Nov 2002
Bien sûr
C'est un exemple, mais il n'est pas très difficile de remplacer le L par ".$lettre."...
C'est un exemple, mais il n'est pas très difficile de remplacer le L par ".$lettre."...
14 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Google rachète Trendalyser de gapminder.org - 17-03-2007
- Google va ouvrir un nouveau bureau dans le Michigan - 12-07-2006
- Vocabulaire du référencement : noms de domaine et URL - 24-08-2007
- Cours de référencement Google par les spécialistes de Ranking Metrics - 25-02-2008
- Tutoriel URL Rewriting - 01-05-2006
- Formation Ranking Metrics à Marseille : référencement Google - 09-11-2010
- Séminaire Référencement Google - 10 Juin 2004 - 05-05-2004
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


