Autor | Zpráva | ||
---|---|---|---|
Gecko Profil * |
#1 · Zasláno: 12. 3. 2012, 09:42:01 · Upravil/a: Moderátor (editace znemožněna) 12. 3. 2012, 12:53:26
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 |
#2 · Zasláno: 12. 3. 2012, 09:54:42
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 |
#3 · Zasláno: 12. 3. 2012, 09:56:19
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 * |
#4 · Zasláno: 12. 3. 2012, 09:57:21 · Upravil/a: Gecko
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 |
#5 · Zasláno: 12. 3. 2012, 10:10:53
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 * |
#6 · Zasláno: 12. 3. 2012, 10:16:47
Takhle stačí.
Tak díky za rady a váš čas, velmi mi to pomohlo. Můžete dát lock. |
||
Časová prodleva: 11 let
|
0