La cuestión es que yo cojo un número de teléfono en mi base de datos y basándome en la siguiente tabla tiene que aparecer de que tipo es:
Red Inteli. Premium 80Z*,90[3-7]*
Internacionales 00*
Acce. a Internet 908*,909*
Servicios 118XX 118*
Red Inteli. Básica 901*,902*
Num. Personales 70[0,4,707,757,770]
M2M y Nomada 590*,511*
Móviles Nacionales 6*,7*
Datáfonos e Info. 1XXX
Fijos Nacionales 9Z*,8Z*
Red Inteli. Gratuita 900*,800*
Emergencias 112,091,061,...
Z= Numero entre 1 y 9
X= Numero entre 0 y 9
* = Numeros restantes entre 0 y 9
La idea es plasmar la tabla anterior en if elses, a partir de los primeros dígitos de cada teléfono que obtengo de la base de datos.
Tengo medio creado el código con los teléfonos internacionales, nacionales y móviles, pero ya se me acaban las ideas para acabar de plasmarlo todo:
Código PHP:
Ver original
$TrucadesUsuari = mysql_query ( "SELECT * FROM cdr,users WHERE cdr.src=users.phone AND (users.id='" . $q ['id'] . "') $expresioMoviles = '/^[6|7][0-9]{8}$/'; //Internacionales $totalsegundosInt = $cdruser['billsec'] + $totalsegundosInt; echo '- int- '; //NOM PAIS EN UN FUTUR /*$Paisos = mysql_query ( "SELECT * FROM paises" ) or die ( mysql_error () ); while ( $pais = mysql_fetch_array ($Paisos) ) { }*/ } //Móviles Nacionales echo '- movil -'; } //Fijos Nacionales else if ($phoneNAC = substr($cdruser['dst'],0,2) == "91" or "92" or "93" or "94" or "95" or "96" or "97" or "98" or "99" or"81" or "82" or "83" or "84" or "85" or "86" or "87" or "88" or "89") { echo '-NACIONAL- '; } }
El problema es que el orden altera el factor, y al poner otras condiciones, los dígitos se ven afectados y no me marcan la opción telefónica que es. Creo que el orden de las condiciones es esencial y el tipo de condición también, pero no me sale el planteamiento correctamente.
A ver si me podéis ayudar. Muchas gracias de antemano.