Zadejte hledaný výraz...

PHP – Výpis z databáze – rozmezí

Dobrý den. Potřebuji poradit.
Mám jednoduchý while cyklus.
A mám tabulku soutěžících. Každý soutěžící má sloupec celkem.
Tyto data vypisuji tím while cyklem
A já potřebuji, že když mají dva stejně bodů, aby to pořadí bylo v rozmezí (Viz obrázek)
8034
Zbytek vypisuji nějak takto: $row; $row
Díky za každou radu, už jsem uplně bezradný
25. 5. 2013 09:12:26
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905211
AlexisProject
verified
rating uzivatele
25. 5. 2013 09:25:02
možno ti pomôže môj script podobný, len si uprav tak ako potrebuješ podmienku
if($body == $body)
25. 5. 2013 09:25:02
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905210
Ok, vyzkouším
25. 5. 2013 09:25:55
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905209
Tomáš
verified
rating uzivatele
(6 hodnocení)
25. 5. 2013 09:28:02
Osobně bych to asi vyřešil v cyklu, kde to vypisuju.
Pokud bych našel shodné hodnoty, ukládal bych si je do pole a z toho to pak vypsal. Číslo pořadí by se pak složilo z čísla prvního v poli až čísla posledního (ty by se mohly uložit do proměnných během toho zápisu do pole).
25. 5. 2013 09:28:02
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905208
Napsal VTKale;953385
Osobně bych to asi vyřešil v cyklu, kde to vypisuju.
Pokud bych našel shodné hodnoty, ukládal bych si je do pole a z toho to pak vypsal. Číslo pořadí by se pak složilo z čísla prvního v poli až čísla posledního (ty by se mohly uložit do proměnných během toho zápisu do pole).
Ty hodnoty se mění, takže najít shodné hodnoty pravděpodobně nepůjde.
Tedy myslím že ne, proto přikládám svůj kód.
25. 5. 2013 09:44:44
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905207
Tomáš
verified
rating uzivatele
(6 hodnocení)
25. 5. 2013 09:53:36
Proč by to nešlo? Tedy pochopitelně pokud bude v SQL dotazu "ORDER BY celkem", pak budou všechny shodné hodnoty vždy za sebou. To, že jednou jsou shodné hodnoty 50,5 a následně 40,52, přeci není problém, protože nejprve se do pole zařadí 50,5, pak se zjistí, že další hodnota už je jiná a provede se výpis těch stejných. Jakmile se zjistí, že se dále opakují hodnoty 40,52, znovu se aplikuje stejný postup a plní se pole, dokud nenarazíme na odlišnou hodnotu.
25. 5. 2013 09:53:36
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905206
MadMax
verified
rating uzivatele
(1 hodnocení)
25. 5. 2013 10:01:33
Neobaluj ten while cyklem for, tu funkcnost uz ma ten while sam o sobe
25. 5. 2013 10:01:33
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905205
Tomáš
verified
rating uzivatele
(6 hodnocení)
25. 5. 2013 10:09:02
A když se dívám na ten kód, tak si dovolím nesouhlasit s větou "Mám jednoduchý while cyklus. " - na mě to působí dost překombinovaně na to, že to není nějak složitá úloha. Doporučuji si to projít a zjistit, zda se to všechno opravdu potřeba - v dobře čitelném kódu se hned lépe dělá a orientuje.
Ale samozřejmě záleží co za kus jsi sem hodil - např. nikde nevidím inicializaci $pocetvysledku i $turnajc, takže buď to máš opravdu dost chaotické a nebo jsi ten kód zredukoval.
25. 5. 2013 10:09:02
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905204
MadMax
verified
rating uzivatele
(1 hodnocení)
25. 5. 2013 10:12:17
Jak pise VTKale -seradit vypis podle celkem od nejvetsiho
$qqq = mysql_query("SELECT * FROM `tabulllka` WHERE celkem > 0 ORDER BY celkem DESC");
Pokud by ti nevadilo par sql dotazu navic, zeptal bych se pred vypisem kazde polozky na pocet se shodnou hodnotou celkem a vedel bych jake rozmezi vypsat ulozit si kontrolni promnenou ze se jedna o rozmezi, kterou bych vynuloval pri prvnim dotazu na pocet, ktery vrati jen jednu polozku.
25. 5. 2013 10:12:17
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905203
Napsal VTKale;953396
A když se dívám na ten kód, tak si dovolím nesouhlasit s větou "Mám jednoduchý while cyklus. " - na mě to působí dost překombinovaně na to, že to není nějak složitá úloha. Doporučuji si to projít a zjistit, zda se to všechno opravdu potřeba - v dobře čitelném kódu se hned lépe dělá a orientuje.
Ale samozřejmě záleží co za kus jsi sem hodil - např. nikde nevidím inicializaci $pocetvysledku i $turnajc, takže buď to máš opravdu dost chaotické a nebo jsi ten kód zredukoval.
Kód je samozřejmě zredukovaný. Vše funguje, krom toho cyklu na to rozmezí v tom pořadí:
25. 5. 2013 10:16:54
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905202
Tomáš
verified
rating uzivatele
(6 hodnocení)
25. 5. 2013 10:23:54
Napsal MadMax;953397
Pokud by ti nevadilo par sql dotazu navic, zeptal bych se pred vypisem kazde polozky na pocet se shodnou hodnotou celkem a vedel bych jake rozmezi vypsat ulozit si kontrolni promnenou ze se jedna o rozmezi, kterou bych vynuloval pri prvnim dotazu na pocet, ktery vrati jen jednu polozku.
Řešit to přes další SQL dotazy je taky možnost. Sice nebude moc optimální co se týče času zpracování, ale jistě bude přehlednější než mnou navrhované řešení.
Ještě mě jako střední cesta napadlo použít tento SQL dotaz:
Tím odpadne náročnost více SQL dotazů na DB, ale je zase nutné si ty data vyndat. Píšu to jen jako další alternativu, kdyby byla nutná nižší náročnost.
25. 5. 2013 10:23:54
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905201
Otázka je, zda snižovat náročnost pro databázi, nebo snadnost zpracování. Mě osobně by se pro tento příklad asi nejvíce líbilo si v db spojit potřebné záznamy (pokud se liší jen ve jménu) a zpracovat je v php:
a pak to projet v php cca:
EDIT: můžu se samozřejmě obejít i bez agregační funkce a poslat si celou seřazenou tabulku a místo foru, který prochází počet záznamu si udělat podmínku, která bude koukat zda bude mít následující záznam stejný počet bodů a kontrolovat, zda následující záznam existuje (podobně jako psal AlexisProject, ale s koukáním dopředu). Ale je to podle mě moc na přemýšlení :-).
Nebo si můžu záznamy projet dvakrát - jednou abych určil kolik je u každého stejných záznamů a podruhé by už byl samotný výpis. To mi ale zase přijde zbytečné.
25. 5. 2013 11:00:00
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905200
Napsal smitka;953408
Otázka je, zda snižovat náročnost pro databázi, nebo snadnost zpracování. Mě osobně by se pro tento příklad asi nejvíce líbilo si v db spojit potřebné záznamy (pokud se liší jen ve jménu) a zpracovat je v php:
a pak to projet v php cca:
Mnohokrát díky za pomoc
Ovšem je tu ještě jeden problém (Viz obrázek)
8037
Zkoušel jsem odečítat jedničky, avšak stále stejný výsledek.
25. 5. 2013 11:40:32
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905199
No zkousel jsem si to po sobe prepsat a otestovat, mam chybku ze mi chybi $ ve vypisech u row, ale jinak mi to funguje dobre...
EDIT: jo vlastne to pricita o jednu jednicku navic
presunul jsem pricitani poradi vzdy za vypis
25. 5. 2013 11:58:08
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905198
Napsal smitka;953435
No zkousel jsem si to po sobe prepsat a otestovat, mam chybku ze mi chybi $ ve vypisech u row, ale jinak mi to funguje dobre...
Ano, to jsem zjistil, a opravil. Ale chybka je v tom, že to pořadí je o jedno vyšší. Viz ten obrázek8038
Nemá být 3 - 6, ale 3 - 5, když se jedná o tři shodné záznamy. protože <3, 4, 5> a nikoliv <4, 5, 6>
25. 5. 2013 12:00:11
https://webtrh.cz/diskuse/php-vypis-z-databaze-rozmezi/#reply905197
Pro odpověď se přihlašte.
Přihlásit