Autor Zpráva
pmasarik
Profil
Rad by som použil funkciu min() ale niekde je chyba a neviem to najst.

Tu je kod

while ($podmen = mysql_fetch_array ($result, MYSQL_ASSOC)) {
$cena = explode("|", $podmen['cena']); // tu mam cenu v tvare 260|770|1065|||280|| a rozbyjem ju do pola
print_r($cena); // skusobne vypisem, vypis je vidiet na priloženom linku
$cena = array_unique($cena); // tu odstranim rovnake hodnoty (prazdne)
print_r($cena); // opat skusobne vypisem, vypis je vidiet na priloženom linku
$cena = implode(", ", $cena); // tu urobim retazec 260, 770, 1065, 280,
$cena = substr($cena, 0, -2); // tu odstranim medzeru a ciarku s konca
echo '<p> tu je echo $cena pred vloženim do min() <strong>'.$cena.'</strong></p>'; // 260, 770, 1065, 280
echo '<p> tu je echo min(275, 1115, 1440, 285) <strong>'.min(275, 1115, 1440, 285).'</strong></p>'; // pre ukazku 6e funkcia min() funguje
echo min($cena); // tu chcem zobrazit najnizsiu hodnotu a hodi to error!?!? PREČO
}


Link na stranku kde je to použité je tu

Skušobne davam vypisovat čo vkladam do min() aby som mal istotu že to robim dobre, ja už fakt neviem kde je chyba, prosím poradte mi niekto lebo zošediviem.
kaifman
Profil
parametrem by meli byt pole nebo hodnoty oddelene carkou a ne retezec hodnot oddeleny carkou
Oswald
Profil

$cena = implode(", ", $cena); // tu urobim retazec 260, 770, 1065, 280,
$cena = substr($cena, 0, -2); // tu odstranim medzeru a ciarku s konca


Jeden problém bude asi v tom odsranění posledních dvou znaků, implode totiž první parametr dává mezi jednotlivé prvky, za ten poslední ho logicky nedá. Takže nejspíš umazáváš poslední dvě čísla.

Ten hlavní důvod je ten, že min neočekává jako parametr string čárkou oddělených čísel, ale buď n integrů nebo pole. Viz manuál:

mixed min ( number arg1, number arg2 [, number ...] )
mixed min ( array numbers )

Min zavolej hned po:
$cena = array_unique($cena); // tu odstranim rovnake hodnoty (prazdne)

tedy:

$min = min($cena)
pmasarik
Profil
Jo chlapi dik moc už mi to ide chyba bola v tom že som tam strkal string.

Pole som tam skušal davat ale furt bol vystup prazdny tak som to zacal podozrievat že to nefunguje a vymyslel som hentú hovadinu. Výstup bol prázdny preto že v poli boli prázdne hodnoty a min() mi vrátila ako najmenšiu hodnotu tú prázdnu hodnotu.

No čo už človek sa furt učí na svojich chybách...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0