Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP - jaký algoritmus?

Ahoj.
Jsem přetažený, tak mi to málo myslí.

Mám následující dotaz:

SELECT additional_name, additional_value
FROM products_additional
WHERE TYPE = 'ADI'
AND products_id
IN ( 61508, 61501, 61512, 61507, 61500, 61511, 61509, 61510 )
ORDER BY additional_name
Tabulka vypadá takto:

http://pc.poradna.net/file/view/14735-tabulka-png

Výsledek dotazu vypadá takto:

http://pc.poradna.net/file/view/14736-tabulka2-png


Jedná se o zboží v eshopu, které má různé filtry ve sloupci additional_name (podle stejného jména) různé hodnoty- sloupec additional_value .


A problém je následující:
Sloupec aditional_value může obsahovat jak řetězce, tak čísla.
Pokud obsahuje řetězce, měl by se zobrazit checkbox. (není problém!)
Pokud však obsahuje více čísel, měl by se zobrazit tzv. range slider s minimální a maximální hodnotou.

Můj dotaz je tedy jednoduchý, jak zjistit minimální a maximální hodnotu TíMTO DOTAZEM ?
Vymyslel jsem tohle:

$filtry =  mysql_query("select additional_name, additional_value from products_additional where type='ADI' AND products_id in (".$id_pro_filtry.") order by additional_name, additional_value");

$dotayek = "select additional_name, additional_value from products_additional where type='ADI' AND products_id in (".$id_pro_filtry.") order by additional_name";

echo $dotayek.'<hr>';
$predchoziMinimalniHodnota;
$minimalniHodnota = 0;
$maximalniHodnota = 0;
$lastFilterName = '';
$poprvee = 1;

while($zakaznik = mysql_fetch_array($filtry)){


echo '<input type="checkbox" value="'. $zakaznik["additional_name"] .'">'. $zakaznik["additional_name"].'<br>';



if(is_numeric($zakaznik["additional_value"])){


if ($lastFilterName == $zakaznik["additional_name"])
{
if ($maximalniHodnota < $zakaznik["additional_value"])
$maximalniHodnota = $zakaznik["additional_value"];

	
$minimalniHodnota = $zakaznik["additional_value"];



if ($minimalniHodnota < $zakaznik["additional_value"])
$minimalniHodnota = $zakaznik["additional_value"];	

}

$lastFilterName = $zakaznik["additional_name"];
$predchoziMinimalniHodnota = $zakaznik["additional_value"];
 
}
}

echo "<hr>";
echo $minimalniHodnota.'+'.$maximalniHodnota;
echo "<hr>";
Ovšem na konci se vždy vytiskne maximální hodnota (i v minimální).

Vidíte tam někdo chybku ?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny