Autor Zpráva
soego
Profil
Ahoj. Mám tento problém: Vypisuji z databáze čísla od 1 do 5 a potřebuji poladit script který zařizuje výpis z databáze tak aby když bude hodnota v databázi 1 aby ji script převedl na slovo ahoj a vypsal ahoj, když bude 2 tak "čau", když 3 tak "zdar", když 4 tak pic apod...

Sesmolil jsem toto:

".($radek['stav'] == 0 ? 'ahoj' : "".$radek[stav']."")."

Problém je pro mě v tom, že pokud je tam něco jiného než 1 (2-5), tak nevím jak to udělat aby se vypisovalo tak jak chci. A mít 5 ifů ve scriptu z databáze se mi moc nezamlouvá.
Nevíte o něčem elegantnějším?

Moc děkuji
YoSarin
Profil
$uvitani = array(
  1 => 'ahoj',
  2 => 'čau',
  3 => 'nazdar',
  // a tak dále
);

$vysledek = (isset($uvitani[$radek['stav']]) ? $uvitani[$radek['stav']] : 'Neznámé číslo');
Sir Tom
Profil
soego:
Také ahoj,
použij větvení switch:
<?php
switch($radek['stav']){
 case 1 : echo "ahoj";
  break;
 case 2 : echo "čau";
  break;
 case 3 : echo "zdar";
  break;
 ............................
}
?>


EDIT: Pozdě - YoSarin byl dříve - vyber si možnost, která se ti lépe zamlouvá...
Baklazan
Profil
 $slova = array('ahoj','cau','zdar','atd','tribodky');

  echo $slova[$radek['stav']];

Pripadne este posun index v tom poli
soego
Profil
YoSarin:

Díky, ale moc se mi to nepovedlo rozchodit Píše mi to :HTTP 500 - asi chyba programování...

".$vysledek = (isset($uvitani[$radek[stav]]) ? $uvitani[$radek[stav]] : 'Neznámé číslo');."

a na začítek stránky jsem dal toto:

$uvitani = array(
1 => 'ahoj',
2 => 'čau',
3 => 'nazdar',
);
soego
Profil
soego:
Díky Vyzkouším i zbytek :-)
soego
Profil
Sir Tom:

Ahoj pomocí toho switche se mi to líbí nejvíce, ale kdykoliv to tak udělám tak se mi stránka nepřeloží správně - nevypíše nic. Mám toto:

if($radek) echo "<td style=\"padding-left: 10px; padding-right: 10px; padding-bottom: 5px; padding-top: 5px; vertical-align: top; border: 1px solid #34a53b;\"><a href=\"view.php?id=".$radek["id"]."\" target=\"_blank\"><img src=\"../hola/".$radek["id"]."_small.jpg\" style=\"border: 1px solid #122424;\" /></a><div style=\"text-align: left; width: 150px;\"><b><a href=\"index.php?art=".$radek["id"]."\">".$radek["nazev"]."</a></b><br /><span style=\"color: gray;\">hhh: <span style=\"text-decoration: line-through;\">".$radek["oldhhh"]."</span></span><br />new: ".hola($radek["urs"])."<br />Pozdrav: <span style=\"color: #34a53b;\"> ".switch($radek[stav]){case 1 : echo "ahoj"; break; case 2 : echo "čau"; break; case 3 : echo "zdar"; break;}
." </span></div></td>";


možná chyba v syntaxy...ale nevim...
Prosím o radu...Děkuju
okolojdouci
Profil *
soego:
Připadá ti toto jako přehledný styl psaní? Styl si vyhoď do externího css, "\ nahraď apostrofy, kód nějak rozumně rozlož do řádků a chybu uvidíš.
soego
Profil
okolojdouci:

Díky, asi jsem slepý jak patrona, ale chybu pořád nevidím (ale musí tam bejt :-))

Mám teď toto:

echo "<td class=\"vypis_tabulku\">

<a href=\"view.php?id=".$radek["id"]."\" target=\"_blank\">
<img class=\"vypis_obrazek\" src=\"../trh/".$radek["id"]."_small.jpg\">
</a>

<div class=\"vypis_div\">

<b><a href=\"index.php?art=".$radek["id"]."\">".$radek["nazev"]."</a></b>

<br><span style=\"color: gray;\">Stará: ".$radek["old"]."</span> ,- Kč s DPH<br>Nová: ".new($radek["new"])."

<br>

".switch($radek["stav"]){case 1 : echo "ahoj"; break; case 2 : echo "čau"; break;}."

</div>

</td>";


Prosím poraďte...už jsem s toho jelen
soego
Profil
soego:

Kdykoliv do toho scriptu dám cokoliv jako if, switch apod. tak se mi nevypíše nic.
Kdyžtak Vám dobiju kredit třeba ha hellshare nebo tak něco přes sms.

Prosím poraďte


Děkuju
pcmanik
Profil
soego:
<?php
switch ($radek["stav"]) {
    case 1 : $vysledok = "ahoj"; break; 
    case 2 : $vysledok = "čau"; break;
}
echo '<td class="vypis_tabulku">

<a href="view.php?id='. $radek['id'] .'" target="_blank">
     <img class="vypis_obrazek" src="../trh/'. $radek['id'] .'_small.jpg">
</a>

<div class="vypis_div">

<b><a href="index.php?art='. $radek['id'] .'">'. $radek['nazev'] .'</a></b>

<br>Stará: '. $radek['old'] .' ,- Kč s DPH<br>Nová: '. new($radek['new']) .'

<br>

'. $vysledok .'

</div>

</td>';
?>
soego
Profil
pcmanik:
Děkuju. to je ono. Prosímtě kde byla chyba? Kam budeš chtít nabít kredit?

Moc děkuju
pcmanik
Profil
soego:
Kredit nabit nechcem, ale dakujem :)
Len tvoj kod je tak komplikovane napisany, ze sa to v tom ani najst nedalo, takze som to len prepisal do peknej formy a chyba sa sama nasla.
Resp. chyba je v tom, ze echujes v echu a to sa nemoze.
soego
Profil
pcmanik:

Díky budu si to pamatovat...
YoSarin
Profil
soego:
Díky, ale moc se mi to nepovedlo rozchodit Píše mi to :HTTP 500 - asi chyba programování...
".$vysledek = (isset($uvitani[$radek[stav]]) ? $uvitani[$radek[stav]] : 'Neznámé číslo');." - bodejť by to fungovalo když řetězíš a chceš vypsat přiřazení. Buď odstraň to $vysledek = a ;, nebo tohle přiřazení proveď před vypisováním stringu a do samotného výpisu pak přidej jen proměnnou $vysledek

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0