Recherche dans une Base Mysql

copper4
Invité n'ayant pas de compte PHPfrance

02 mars 2007, 09:42

Bonjour à tous,
j'ai une table qui contient des prefixes telephoniques avec une longeur variables) et le prix de la communication en fonction du prefixe.
01 0,5
02 0,5
082 0,9
0892 0,7
...
...

J'ai une variable php $numero qui contient un numero de telephone de 10 chiffres, par exemple 0820101010.

Comment puis-je connaitre le prix associé au prefixe si il existe dans la table (Si le prefixe fait un nbr de caractere fixe, par exemple 2,là je sais faire)?

Merci d'avance

Copper

PS : tarifs donnés pour l'exemple

Eléphanteau du PHP | 20 Messages

02 mars 2007, 12:08

En supposant que j'ai une table comme ceci :
CREATE TABLE tel(prefixe CHAR(5), tarif DECIMAL(10,2));

Je proposerai d'utiliser la requête suivante :
SELECT tarif FROM tel WHERE INSTR('01234567', prefixe)>0 ORDER BY CHAR_LENGTH(prefixe) DESC LIMIT 1;

D'après mes tests, çà a l'air de marcher...

Mammouth du PHP | 1029 Messages

02 mars 2007, 12:12

Salut,

Il faudrais que tu puisse déjà faire la différence entre Un téléphone fixe et un Gsm.

Prenons l'exemple de :

Liège : 04
Base : 0486

comment pense tu faires la différence, à moins de présenter tous les tarifs?
L'expérience est la somme de toutes nos erreurs.

Copper
Invité n'ayant pas de compte PHPfrance

02 mars 2007, 21:50

Fixe : 01, 02, 03,04 , 05 + NGN
Mobile : 06

LE probleme est plus sur l'analyse des 08 et des indcatifs pour lespays hors france.