Autor Zpráva
frost
Profil
Zdravím,
cyklus while mi nefunguje. Důvodem je něco ve zvýrazněném textu, ale kde je tedy problém?
Ještě podotknu, že při tom jednom cyklu co se provede se zvýrazněná část provede správně.

while ($zaznam=MySQL_Fetch_Array($vysledek)):
//include '../vypocet_vzdalenosti.php';
$rychlost="6";
if(!isset($rychlost)) $rychlost=1;
$rychlost_hriste="0";
$vesnice_x="174";//$_POST["souradnice_x"];
$vesnice_y="59";//$_POST["souradnice_y"];
$x=$vesnice_x-$zaznam["souradnice_x"];
$a=abs($x);
if ($a>400)
{
$a=401-abs((400-$a));
}
//echo $a."<br><br>";
$y=$vesnice_y-$zaznam["souradnice_y"];
$b=abs($y);
if ($b>400)
{
$b=401-abs((400-$b));
}
//echo $b."<br><br>";
$vysledek=(sqrt((pow($a,2)+pow($b,2)))); //pythagorova věta
//echo $vysledek."<br><br>";
if ($vysledek<=30)
{
$m_vysledek=$vysledek/$rychlost;
$hodiny = str_pad(floor($m_vysledek), 2, "0", STR_PAD_LEFT);
$zbytek = ($m_vysledek-$hodiny)*60;
$minuty = str_pad(floor($zbytek), 2, "0", STR_PAD_LEFT);
$zbytek = ($zbytek-$minuty)*60;
$sekundy = str_pad(round($zbytek), 2, "0", STR_PAD_LEFT);
//echo $hodiny." : ".$minuty." : ".$sekundy;
//echo "<br><br>1";
}
elseif ($rychlost_hriste==0)
{
$m_vysledek=$vysledek/$rychlost;
$hodiny = str_pad(floor($m_vysledek), 2, "0", STR_PAD_LEFT);
$zbytek = ($m_vysledek-$hodiny)*60;
$minuty = str_pad(floor($zbytek), 2, "0", STR_PAD_LEFT);
$zbytek = ($zbytek-$minuty)*60;
$sekundy = str_pad(round($zbytek), 2, "0", STR_PAD_LEFT);
//echo $hodiny." : ".$minuty." : ".$sekundy;
//echo "<br><br>2";
}
else
{
$vysledek_do30=30/$rychlost;
//echo $vysledek_do30."<br><br>";
$vysledek_nad30=($vysledek-30)/$rychlost_hriste;
//echo $vysledek_nad30."<br><br>";
$vysledek_celkem=$vysledek_do30+$vysledek_nad30;
//echo $vysledek_celkem."<br><br>";
$hodiny = str_pad(floor($vysledek_celkem), 2, "0", STR_PAD_LEFT);
$zbytek = ($vysledek_celkem-$hodiny)*60;
$minuty = str_pad(floor($zbytek), 2, "0", STR_PAD_LEFT);
$zbytek = ($zbytek-$minuty)*60;
$sekundy = str_pad(round($zbytek), 2, "0", STR_PAD_LEFT);
//echo $hodiny." : ".$minuty." : ".$sekundy;
//echo "<br><br>3";
}
?>
<table border="3" cellspacing="0" width="550">
<tr align="center"><td width="30%"><?php echo $zaznam["vesnice"]?></td><td width="30%"><?php echo $zaznam["jmeno"]?></td><td width="20%"><?php echo $zaznam["narodnost"]?></td><td width="20%"><?php echo $hodiny." : ".$minuty." : ".$sekundy;?></td></tr>
</table>
<?php
endwhile;
djlj
Profil
cyklus while mi nefunguje
Tak to je smutný.

A opravdu se ti z databáze vybere požadovaný počet řádků?
frost
Profil
Z databáze se vybere pouze jeden záznam ze dvou, pokud odstraním zvýrazněný kód, zobrazí se oba záznamy.
nightfish
Profil
$vysledek=(sqrt((pow($a,2)+pow($b,2)))); //pythagorova věta
tenhle řádek spolehlivě přepíše obsah proměnné $vysledek, která se používá v podmínce cyklu while... :-)
frost
Profil
Já jsem pták. To je ono.
Omlouvám se za celí tento thread.

Pak mě ještě napadlo dát ty výpočty do funkce. To už se samozřejmě zobrazil správný počet záznamů, ale se stejným prvotním výpočtem.

Nevíte proč funkce vždy počítala s prvotními hodnotami proměnných $zaznam["souradnice_x"] a $zaznam["souradnice_y"], nebo proč se už nesnažila počítat a jako výsledek vždy vrátila prvotní výpočet?

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: