Je cherche à faire un carnet d'adresses où j'aurais une liste de lien du
type:
# | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q |
R | S | T | U | V | W | X | Y | Z
En cliquant sur une lettre les personnes ou sociétés dont le nom
commence par cette lettre s'affichent.
[...]
Voici une version du code (simplifiée) que j'utilise. Ca marche sauf que
ça marche pas comme je veux (voir ci-dessus).
<?php
// Retrieve the letter passed via the URL
$curr_letter = $_REQUEST['letter'];
// Build the SQL string
$sql = "SELECT * FROM people WHERE lastname LIKE '$curr_letter%'";
?>
Je cherche à faire un carnet d'adresses où j'aurais une liste de lien du
type:
# | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q |
R | S | T | U | V | W | X | Y | Z
En cliquant sur une lettre les personnes ou sociétés dont le nom
commence par cette lettre s'affichent.
[...]
Voici une version du code (simplifiée) que j'utilise. Ca marche sauf que
ça marche pas comme je veux (voir ci-dessus).
<?php
// Retrieve the letter passed via the URL
$curr_letter = $_REQUEST['letter'];
// Build the SQL string
$sql = "SELECT * FROM people WHERE lastname LIKE '$curr_letter%'";
?>
Je cherche à faire un carnet d'adresses où j'aurais une liste de lien du
type:
# | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q |
R | S | T | U | V | W | X | Y | Z
En cliquant sur une lettre les personnes ou sociétés dont le nom
commence par cette lettre s'affichent.
[...]
Voici une version du code (simplifiée) que j'utilise. Ca marche sauf que
ça marche pas comme je veux (voir ci-dessus).
<?php
// Retrieve the letter passed via the URL
$curr_letter = $_REQUEST['letter'];
// Build the SQL string
$sql = "SELECT * FROM people WHERE lastname LIKE '$curr_letter%'";
?>
Bonjour,Je cherche à faire un carnet d'adresses où j'aurais une liste de lien du
De deux choses l'une.
Soit il existe une requête SQL qui compare les chaînes en rassemblant
les caractères accentués en fonction de LC_COLLATE, et dans ce cas le
bon groupe sera plus probablement celui sur les bases de données :
fr.comp.applications.sgbd.
Soit tu stockes dans ta base de donnée, en plus du nom, la lettre que tu
voudrais y voir associée, et tu peux chercher cette lettre avec PHP.
L'avantage de cette méthode, c'est que pour la recherche tu n'utiliseras
pas LIKE mais l'égalité.
Je suppose qu'on est dans le second cas (puisque c'est le groupe PHP).
Si tu étais en ISO-Latin-1, il serait facile de récupérer le premier
caractère de ta chaîne avec accent, passer un petit coup de strtr()¹
pour remplacer les äÄàÀáÁ par A, etc. En utf-8, c'est plus complexe mais
c'est faisable, et cela a peut-être déjà été fait. Une suggestion qui
vaut ce qu'elle vaut : transformer ta chaîne de utf-8 en iso-latin-1 par
utf8_decode()² avant de faire le strtr(). L'inconvénient, c'est que des
caractères n'existant pas en latin-1 (par exemple le s avec circonflexe
inversé) ne seront pas traduits en caractères sans accent.
En espérant avoir aidé,
Bonjour,
Je cherche à faire un carnet d'adresses où j'aurais une liste de lien du
De deux choses l'une.
Soit il existe une requête SQL qui compare les chaînes en rassemblant
les caractères accentués en fonction de LC_COLLATE, et dans ce cas le
bon groupe sera plus probablement celui sur les bases de données :
fr.comp.applications.sgbd.
Soit tu stockes dans ta base de donnée, en plus du nom, la lettre que tu
voudrais y voir associée, et tu peux chercher cette lettre avec PHP.
L'avantage de cette méthode, c'est que pour la recherche tu n'utiliseras
pas LIKE mais l'égalité.
Je suppose qu'on est dans le second cas (puisque c'est le groupe PHP).
Si tu étais en ISO-Latin-1, il serait facile de récupérer le premier
caractère de ta chaîne avec accent, passer un petit coup de strtr()¹
pour remplacer les äÄàÀáÁ par A, etc. En utf-8, c'est plus complexe mais
c'est faisable, et cela a peut-être déjà été fait. Une suggestion qui
vaut ce qu'elle vaut : transformer ta chaîne de utf-8 en iso-latin-1 par
utf8_decode()² avant de faire le strtr(). L'inconvénient, c'est que des
caractères n'existant pas en latin-1 (par exemple le s avec circonflexe
inversé) ne seront pas traduits en caractères sans accent.
En espérant avoir aidé,
Bonjour,Je cherche à faire un carnet d'adresses où j'aurais une liste de lien du
De deux choses l'une.
Soit il existe une requête SQL qui compare les chaînes en rassemblant
les caractères accentués en fonction de LC_COLLATE, et dans ce cas le
bon groupe sera plus probablement celui sur les bases de données :
fr.comp.applications.sgbd.
Soit tu stockes dans ta base de donnée, en plus du nom, la lettre que tu
voudrais y voir associée, et tu peux chercher cette lettre avec PHP.
L'avantage de cette méthode, c'est que pour la recherche tu n'utiliseras
pas LIKE mais l'égalité.
Je suppose qu'on est dans le second cas (puisque c'est le groupe PHP).
Si tu étais en ISO-Latin-1, il serait facile de récupérer le premier
caractère de ta chaîne avec accent, passer un petit coup de strtr()¹
pour remplacer les äÄàÀáÁ par A, etc. En utf-8, c'est plus complexe mais
c'est faisable, et cela a peut-être déjà été fait. Une suggestion qui
vaut ce qu'elle vaut : transformer ta chaîne de utf-8 en iso-latin-1 par
utf8_decode()² avant de faire le strtr(). L'inconvénient, c'est que des
caractères n'existant pas en latin-1 (par exemple le s avec circonflexe
inversé) ne seront pas traduits en caractères sans accent.
En espérant avoir aidé,
Soit il existe une requête SQL qui compare les chaînes en rassemblant
les caractères accentués en fonction de LC_COLLATE, et dans ce cas le
bon groupe sera plus probablement celui sur les bases de données :
fr.comp.applications.sgbd.
J'ai posté un message sur ce groupe, merci du conseil.
En effet utiliser LC_COLLATE peut être une solution, mais je suis
assez perdu quant à son utilisation.
[...]
Le problème dans ce cas c'est bien de savoir associer la lettre entrée
automatiquement. Je n'ai pas envie de devoir sélectionner la lettre
manuellement. De plus je souhaite faire partager cette application à des
utilisateurs basiques (encore plus basiques que moi) et donc je ne peux
pas leur faire confiance pour renseigner ce champ stratégique.
Soit il existe une requête SQL qui compare les chaînes en rassemblant
les caractères accentués en fonction de LC_COLLATE, et dans ce cas le
bon groupe sera plus probablement celui sur les bases de données :
fr.comp.applications.sgbd.
J'ai posté un message sur ce groupe, merci du conseil.
En effet utiliser LC_COLLATE peut être une solution, mais je suis
assez perdu quant à son utilisation.
[...]
Le problème dans ce cas c'est bien de savoir associer la lettre entrée
automatiquement. Je n'ai pas envie de devoir sélectionner la lettre
manuellement. De plus je souhaite faire partager cette application à des
utilisateurs basiques (encore plus basiques que moi) et donc je ne peux
pas leur faire confiance pour renseigner ce champ stratégique.
Soit il existe une requête SQL qui compare les chaînes en rassemblant
les caractères accentués en fonction de LC_COLLATE, et dans ce cas le
bon groupe sera plus probablement celui sur les bases de données :
fr.comp.applications.sgbd.
J'ai posté un message sur ce groupe, merci du conseil.
En effet utiliser LC_COLLATE peut être une solution, mais je suis
assez perdu quant à son utilisation.
[...]
Le problème dans ce cas c'est bien de savoir associer la lettre entrée
automatiquement. Je n'ai pas envie de devoir sélectionner la lettre
manuellement. De plus je souhaite faire partager cette application à des
utilisateurs basiques (encore plus basiques que moi) et donc je ne peux
pas leur faire confiance pour renseigner ce champ stratégique.
Il ne faut surtout pas le faire à la main ni demander à tes utilisateurs
de le faire ! Ce genre de manip complètement mécanique doit être bien
sûr automatisée. Ma solution à base d'utf8_decode ne te convient
peut-être pas à cause des et absents d'ISO-Latin-1, mais une autre
solution serait peut-être envisageable.
Il ne faut surtout pas le faire à la main ni demander à tes utilisateurs
de le faire ! Ce genre de manip complètement mécanique doit être bien
sûr automatisée. Ma solution à base d'utf8_decode ne te convient
peut-être pas à cause des et absents d'ISO-Latin-1, mais une autre
solution serait peut-être envisageable.
Il ne faut surtout pas le faire à la main ni demander à tes utilisateurs
de le faire ! Ce genre de manip complètement mécanique doit être bien
sûr automatisée. Ma solution à base d'utf8_decode ne te convient
peut-être pas à cause des et absents d'ISO-Latin-1, mais une autre
solution serait peut-être envisageable.
Avant tout, désolé d'avoir été si long à répondre, je me suis cogné à un
problème de compatibilité CSS sous IE. très crispant.
En effet la table ISO-8859-15 me semble largement suffisante pour mes
besoins.
Je ne sais pas ce que je ferais de tout façon si des japonais
ou des arabes venaient à utiliser ce carnet d'adresses...
Après avoir décortiqué ton code je crois que c'est un excellente solution.
Je fais un copier-coller sans vergogne et je teste une implémentation
rapide et je te fais part du résultat dès que possible.
Avant tout, désolé d'avoir été si long à répondre, je me suis cogné à un
problème de compatibilité CSS sous IE. très crispant.
En effet la table ISO-8859-15 me semble largement suffisante pour mes
besoins.
Je ne sais pas ce que je ferais de tout façon si des japonais
ou des arabes venaient à utiliser ce carnet d'adresses...
Après avoir décortiqué ton code je crois que c'est un excellente solution.
Je fais un copier-coller sans vergogne et je teste une implémentation
rapide et je te fais part du résultat dès que possible.
Avant tout, désolé d'avoir été si long à répondre, je me suis cogné à un
problème de compatibilité CSS sous IE. très crispant.
En effet la table ISO-8859-15 me semble largement suffisante pour mes
besoins.
Je ne sais pas ce que je ferais de tout façon si des japonais
ou des arabes venaient à utiliser ce carnet d'adresses...
Après avoir décortiqué ton code je crois que c'est un excellente solution.
Je fais un copier-coller sans vergogne et je teste une implémentation
rapide et je te fais part du résultat dès que possible.