Autor Zpráva
Gecko
Profil *
Zdravím,
chtěl bych se zeptat, jakou fci použít, pokud mám v databázi čísla a rád bych vypsal vedle čísla název.

Přemýšlel jsem case:
switch (substr($promena['telefon'], 0, 3)) {
     case "603": $vystup="Vodafone"; break;
     case "604": $vystup="Vodafone"; break;
     default : $vystup="Pevná linka";
     //... atd
     }  
echo $vystup;

ale předčíslí a operáttorů je pomerně mnoho, existoval by jiný způsob?


PS: Název tématu jsem zvolil takto schválně, snad to někomu pomůže, pokud přijde z vyhledávače.
Tori
Profil
Gecko:
Šlo by to řešit i na úrovni DB - tabulka operátorů (id, operátor), spojit přes left join a v PHP doplnit jen "pevná linka" u neznámých. A k tabulce tel.čísel přidat další sloupeček pro id operátora (které by se podobným switchem určilo při ukládání nového záznamu).
Anebo jestli chcete udržovat vazby trojčíslí-operátoři v databázi, raději než ve skriptu, tak místo id operátora použít v obou tabulkách to trojčíslí. (tak by se nemusel použít ten switch vůbec)
Joker
Profil
Gecko:
0. Proč je to v CSS? Přesouvám do PHP.
1. Zas tolik těch předčíslí není
2. Stejně už z toho operátora určit nelze
3. Nejsou to vždycky 3 čísla

Pokud jde o technickou stránku věci, bylo by možné využít „propadávání“ ve switch:
$predcisli = ($telefon[0] == "6") ? substr($telefon, 0, 3) : substr($telefon, 0, 2);
$operator = "Pevná linka";
switch($predcisli){
  case "603": // žádný break- propadávání
  case "604": 
  case "605": 
  case "73": $operator = "T-Mobile";
  break;
  
  case "601":
  case "602":
  case "606":
  case "607":
  case "72": $operator = "O2";
  break;
  
  case "608":
  case "77": $operator = "Vodafone";
  break;
}

Ale jak jsem psal, stejně to nebude fungovat.
Gecko
Profil *
Tori:
Šlo by to řešit i na úrovni DB
Na úrovní DB to řešit nechci. Rád bych skrze PHP. Pokud to nepůjde jinak, než přes switch, tak to udělám skre něj.

Ale díky za tvůj čas a post.


Joker:
0. Proč je to v CSS? Přesouvám do PHP. - Po noční se mi pletou písmenka, díky za přesun :)

Za technický výklad díky, myslel jsem, že to jde i jinou fci. Ale myslet znamená ... vedět.
Joker
Profil
Gecko:
myslel jsem, že to jde i jinou fci
Samozřejmě to jde i jinak, šlo by si třeba pro každého operátora udělat pole předšíslí, ale tohle mi přijde jako nejlepší varianta.
Gecko
Profil *
Takhle stačí.

Tak díky za rady a váš čas, velmi mi to pomohlo. Můžete dát lock.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0