Abécédaire dynamique

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

webcrea
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Abécédaire dynamique

Message le Mar Déc 20, 2005 21:12

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.


absoluteweb
WRInaute impliqué
WRInaute impliqué
 
Messages: 474
Inscription: Ven Nov 22, 2002 16:02

Message le Mar Déc 20, 2005 23:04

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.


yazerty
WRInaute accro
WRInaute accro
 
Messages: 1682
Inscription: Dim Juin 19, 2005 19:47

Message le Mer Déc 21, 2005 2:57

Faire 2 champs dans ta table : titre_affiche - titre_abecedaire (sans les pouich) :- ?


absoluteweb
WRInaute impliqué
WRInaute impliqué
 
Messages: 474
Inscription: Ven Nov 22, 2002 16:02

Message le Mer Déc 21, 2005 10:47

yazerty a écrit:Faire 2 champs dans ta table : titre_affiche - titre_abecedaire (sans les pouich) :- ?
Si la base est déjà constituée et qu'elle comporte des milliers d'enregistrement, bonjour le boulot :?
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
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Message le Mer Déc 21, 2005 11:02

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 ?


jerome347
WRInaute passionné
WRInaute passionné
 
Messages: 573
Inscription: Ven Mar 19, 2004 13:09

Message le Mer Déc 21, 2005 11:09

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%' }
...

webcrea
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Message le Mer Déc 21, 2005 11:55

oui, c'est pareil avec cette méthode : "La planète des singes" par exemple figure toujours sous "L" et sous "P"...


jerome347
WRInaute passionné
WRInaute passionné
 
Messages: 573
Inscription: Ven Mar 19, 2004 13:09

Message le Mer Déc 21, 2005 12:00

Oui, pardon, c'est plutôt :

WHERE titre LIKE '$lettre%'

if($lettre == "L") { AND titre NOT LIKE 'La $lettre%' AND titre NOT LIKE 'L\'$lettre%' } else { OR titre LIKE 'La $lettre%' OR titre LIKE 'L\'$lettre%' }
...


absoluteweb
WRInaute impliqué
WRInaute impliqué
 
Messages: 474
Inscription: Ven Nov 22, 2002 16:02

Message le Mer Déc 21, 2005 12:01

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
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Message le Mer Déc 21, 2005 21:11

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 :

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 ? :wink:


absoluteweb
WRInaute impliqué
WRInaute impliqué
 
Messages: 474
Inscription: Ven Nov 22, 2002 16:02

Message le Jeu Déc 22, 2005 11:29

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
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Message le Jeu Déc 22, 2005 12:07

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 !!

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";
[/code]


absoluteweb
WRInaute impliqué
WRInaute impliqué
 
Messages: 474
Inscription: Ven Nov 22, 2002 16:02

Message le Jeu Déc 22, 2005 12:18

Bien sûr :lol:
C'est un exemple, mais il n'est pas très difficile de remplacer le L par ".$lettre."...

webcrea
WRInaute discret
WRInaute discret
 
Messages: 53
Inscription: Lun Sep 01, 2003 16:32

Message le Jeu Déc 22, 2005 12:24

Oui ! :-)
C'est bon cette fois merci.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités