Autor Zpráva
eetmee
Profil
Dobrý večer,
mám stránku na kterou se mi z databáze vypisují údaje. Jedním z nich je i položka "online", kam se mi vypisuje buď 0 nebo 1, což se mi zobrazuje i na stránce. Potřebuji, aby se mi namísto 0 nebo 1 zobrazilo "Ne", nebo "Ano" ... Nevím jak toho dosáhnout, zkoušel jsem funkce IF, str_replace, i vytvoření nové proměnné, a nic nepomáhá.
Poradí někdo?
Díky.
Martin02
Profil
eetmee:
Ukaž tu část kódu, kde se ti vypisují údaje z db.
eetmee
Profil
$chars = mysql_query("SELECT id,name,online FROM characters WHERE account IN (SELECT id FROM auth.account WHERE username = '".$accname."')");

while($characters=mysql_fetch_array($chars)) { 
            echo('<tr><td>'.$characters['name'].'</td><td>'.$characters['online'].'</td></tr>');
        }
Darker
Profil
"...".($charaters["online"]==0?"Ne":"Ano")."...";

Ještě poznámka:
mysql_fetch_array($chars) :
array(
    0 => "Jmeno",
    1 => 0/1,
    "name" => "Jmeno",
    "online" => 0/1
)
Proč nepoužíváš druhý parametr funkce? Pokud chceš používat jen jména návratových hodnot volej:
mysql_fetch_array($chars, MYSQL_ASSOC)
A vzhledem k struktuře tvého výstupu bych vypisoval spíš:
0 -> <span style="color:red">Offline</span>
1 -> <span style="color:green">Online</span>
eetmee
Profil
Díky :)


Ještě se zeptám jak to udělat, pokud je těch číselných výpisů víc (tj. například kdyby byl výpis "osloveni", a hodnoty 0, 1 nebo 2, a chtěl bych to přepsat na 0 = Pan, 1 = Paní, 2 = Slečna) nebo podobné ...


// edit: Jasně no, JPW forum mi to háže jako EDIT takže to nemůžu dát jako novej příspěvek.... super
Martin02
Profil
eetmee:
pokud je těch číselných výpisů víc
while($characters=mysql_fetch_array($chars)) { 
  switch($characters["online"]) {
    case 0 :
      $osloveni = "Pan";
      break;

    case 1 :
      $osloveni = "Paní";
      break;

    case 2 :
      $osloveni = "Slečna";
      break;
  }
  echo('<tr><td>'.$characters['name'].'</td><td>'.$osloveni.'</td></tr>');
}
Darker
Profil
Já bych reději než switch použil pole. Je t o dost přehlednější:
$osloveni  = array("Pan", "Paní", "Slečna");
echo('<tr><td>'.$characters['name'].'</td><td>'.$osloveni[$characters["osloveni"]].'</td></tr>');

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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