Nepředvídatelné chování – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Nepředvídatelné chování – PHP – Fórum – Programujte.comNepředvídatelné chování – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Cypves0
Duch
28. 11. 2009   #1
-
0
-

Dobrý den,
chci si napsat funkci pro tvorbu tabulek ve tvaru plátna francozské rulety (http://www.hazardni-hry.eu/_img/ruleta/francouzska-ruleta-hraci-tabule.png), samotný kod tvorby tabulky jsem již zvládl ovšem narazil jsem na jeden problém z kterého nevím jak ven.
Mám dvě funkce, první zjistí o jakou barvu čísla se jedná (červená-černá), výstup funkce je "red" nebo "black":

  function color($num)

{
$red=Array(1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36);

foreach ($red as $barva)
{
if($num==$barva)
{
echo "red";
$i=1;
}
}

if($i==0)
echo "black";
}

Druhá funkce vytváří samotnou tabulku:
  function tab($od,$do)

{
echo "<table>\n";
for($row=1; $row<=3; $row++)
{
if($od==0)
{
if($row==1)
$num=$od+3;
else if($row==2)
$num=$od+2;
else
$num=$od+1;
}
else
{
if($row==1)
$num=$od+2;
else if($row==2)
$num=$od+1;
else
$num=$od;
}

if($od==0 && $num==3)
echo "<tr><td class='green' rowspan='3'>0</td><td class='red'>3</td>";
else
echo "<tr><td class='".color($num)."'>".$num."</td>";

for($col=1; $col<=((($do+1)-$od)/3)-2; $col++)
{
$num+=3;
echo "<td class='".color($num)."'>".$num."</td>";
}

$num+=3;
echo "<td class='".color($num)."'>".$num."</td></tr>\n";

}
echo "</table>\n";
}

Mám v úmyslu formátovat jednotlivé buňky pomocí tří class v CSS, jedná se o třídy green (pouze pro nulu), red a black. Slova red a black jsou výstupy té první funkce color.
A k věci. Problém je v těchto řádcích <td class='".color($num)."'>, slova red a black se místo mezi uvozovkama v class="" vypíšou nepochopitelně na začátek každého řádku v tabulce, tedy před <tr>. Nechápu proč. Prosím poraďte.

Nahlásit jako SPAM
IP: 217.197.36.–
Reklama
Reklama
Lordest0
Super člen
28. 11. 2009   #2
-
0
-

tak v prvom rade tam mas chybu, funkcia tab prijma 2 argumenty ($od, $do) a ty jej predavas iba jeden ($num) :) ..
naco si tu vypisal funkciu color(); ked ju v druhej funkcii vobec nepouzivas?

sorry ale je to nejake nezrozumitelne :/

tam moze byt chyba hocikde..

Nahlásit jako SPAM
IP: 85.216.242.–
Cypves0
Duch
28. 11. 2009   #3
-
0
-

To Lordest [:
První funkci používám, jen jsem tam napsal kousek kodu špatně kde byla zrovna použita.. Už je to opravené.

Nahlásit jako SPAM
IP: 217.197.36.–
KIIV+42
God of flame
28. 11. 2009   #4
-
0
-

chyba je mezi zidli a klavesnici..
bud vymen ve funkci echo za return
nebo vyhod volani funkce z echa
nezapomen ze kdyz tiskne: echo "<td class='".color($num)."'>".$num."</td>"; tak uz MUSI byt znama hodnota "color($num)"

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Lordest0
Super člen
28. 11. 2009   #5
-
0
-

Cypves napsal:
To Lordest [:
První funkci používám, jen jsem tam napsal kousek kodu špatně kde byla zrovna použita.. Už je to opravené.



hehe, v prvom prispevku tam kde je color($num) bol tab($num), si to uz opravil ako vidim, cize v tom bola chyba nie? :D
ja ze co pouzivas rekurziu, lebo sa mi to zdalo nejake divne resp. divne pouzite :D

preto som sa ta na to pytal pretoze predtym v tej druhej funkcii tab(); funkcia color(); vobec nebola pouzita bol tam ten tab(); :D

Nahlásit jako SPAM
IP: 85.216.242.–
Cypves0
Duch
28. 11. 2009   #6
-
0
-

To Lordest :
Jasně že to byla kravina.. :)
To KIIV :
Return pomohlo, díky moc! Jste hlavy! :)

Nahlásit jako SPAM
IP: 217.197.36.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 48 hostů

Podobná vlákna

Divné chování if-else — založil d.mostek

Korektní chování eventů — založil Matěj Andrle

Podivné chování jazyka C++ — založil NeprijemnePrekvapeny

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý