[ w3bl0rd @ 20.06.2007. 18:23 ] @
| hm zanima me jedna stvar npr u bazi imam 500 upisa napravim upit SELECT * FROM tabela LIMIT 0,10
mysql_numrows dat ce mi 10 ali kako da ja dobijem brojku 500?
naravno nisam toliko glup da ne znam napraviti novi upit bez limita ali neda li se to sa jednim upitom rjesit? ipak je sa jednim upitom to brze zar ne? |
[ BorisMB @ 20.06.2007. 18:47 ] @
burazeru ono sto ti mogu reci jeste da ako limitujes broje rezultato sa funkciom mysql_num_rows dobices maksimalnu vrijednos koliko si stavi da ti je limt recimo 10, neshvatama zasto bi trazio kakav univerzalni upit postavis jos jedan upit bez limita. cak mislim da nije ni potrebno tako nesto. ako ti treba kolko ima odgovora mozes i ovakav
$r=mysql_nub_rows['SELECT * FROM tabela',$db_conect) ali sto bi se mucio. za drugi nacin ja ne znam, a i da postoji sugurno ga ja licno ne bi koristio ovako sa ovim se super snalazim :)
[ dakipro @ 20.06.2007. 18:59 ] @
Znam na sta mislis, verovatno ti treba kod paginacije (bar je meni tu trebalo) a sto je najgore u nakim uputstvima pise da se moze dobiti taj broj nekom (ako ne bas tom) funkcijom, ali meni to nikad nije polazilo za rukom, pa sam i ja odustao. Jos manje mi se svidja da selectujes sve (kao sto je BorisMB napisao) da bi samo izbrojao koliko ih ima kad mysql ima COUNT() naredbu.
Licno, upit podelim u 4-5 dela, od kojih je jedan deo za 'select' a jedan deo za 'limit' i funkciji prosledis $countOnly=true i onda 'select' deo postavis na COUNT(*) a 'limit' setujes na ''.
[ w3bl0rd @ 20.06.2007. 19:16 ] @
@dakipro thanks mislil sam da ima nešt ono direktno al budem samo tako riješio...
@BorisMB hvala na trudu no to što si napisao i nije baš nešt pogotovo ovo SELECT * ako već želiš prek mysql_numrows funkcije doznat to onda radije napišeš SELECT NULL FROM tabela... a to za limit koliko postaviš to mi je jasno u tome i jest cijeli problem :-D
[ BorisMB @ 20.06.2007. 20:13 ] @
E burazeru znas sta mi na pamet da te pita? :) da li u toj bazi dobro tih 500 ili vise podataka. da li se oni brisu, e pazi ovo ako se ti artikli nece nikad brisati ti fino dodas u svoju bazu jos jednu kolonu nazovi je kako oces neka bude int i postavi da je
auto_increment, znaci nek ti prestavlja redni broj po kome si upisao proivod ili sta ves, i posle samo izvuces najvecu vrijednost iz tog kljuca a ona prestavlja kolko ima artikala. Jes da je ovo smijesno ali pade mi na pamet pa reko sto da je ne napisem :)
redni_br int not null auto_increment
Pozdrav
[ w3bl0rd @ 20.06.2007. 23:35 ] @
znam za to ali mi ništa ne vrijedi jer će se podaci brisati... polje id ionak moram imati i baš bude na auto_increment ali će se podaci brisat dodavat tak da se tu izgubi ...
hvala svejedno na trudu...
[ stsung @ 21.09.2007. 15:07 ] @
Pozd.
Od MySQL verzije 4 imash sledecu rezervisanu rech: SQL_CALC_FOUND_ROWS. Time ce MySQL u rezultat poziva FOUND_ROWS() funkcije upisati ukupan row count SELECT upita koji u sebi ima LIMIT kao da tog limita nije bilo. Primer:
SELECT SQL_CALC_FOUND_ROWS * FROM tabela WHERE to=ono LIMIT 45,50;
SELECT FOUND_ROWS();
Svako dobro.
p.s. Malo sam ramidzhovao po forumu pa sam naleteo na ovu poruku (prim. aut.)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.