[ CIIAPTAK @ 07.04.2004. 22:09 ] @
Ako npr u tabeli imam kolonu ID ali redoslijed u njoj nije 1,2,3,4,5.. nego npr 1,2,5,6,8,9.. zato sto su odredjene linije u medjuvremenu izbrisane - dakle sad redimo red koji ima ID=8 ustvari nije *osmi* red u tabeli nego *peti*.. Dakle, kako ja mogu saznati da je to bas *peti* red? ima li neka funkcija koja kaze "reci mi koji je broj reda koji ima ID=8"..?

Dakle, kao sto u SELECT naredbi ima opcija LIMIT pa mogu da trazim npr samo *peti* red (LIMIT 5,1), meni treba neka obrnuta funkcija?

Skontao sam jedan zaobilazni nacin, ali ljepse bi bilo ako postoji takva funkcija.. Evo kako sam to zasad uradio bez funkcije:

- $newsX je broj reda (ono sto trazim)
- $newsID je vrijednost koju trazeni red sadrzi u koloni ID
- news je ime tabele

//[start] get $newsX from $newsID
$sql = "SELECT count(ID) FROM news WHERE ID<$newsID";
$result = mysql_query($sql) or exit("Unable to query database..");
$line = mysql_fetch_row($result);
$newsX = $line[0];
//[end]
[ noviKorisnik @ 08.04.2004. 00:47 ] @
Obrati pažnju na 2 detalja:

Ako ti je $newsID == 1 (prvi zapis) tebi će biti $newsX == 0. OK, možda si tako i želeo, no dobio sam utisak da želiš "ljudsko" brojanje - znači od jedinice (WHERE ID <= $newsID) a ne od nule.

Drugo, šta se dešava ako se u upit prosledi $newsID = 3, a red s trojkom je izbrisan? Dobijaš neku vrednost za $newsX koja se odnosi na red sa različitim ID-om od $newsID...
[ bluesman @ 08.04.2004. 03:26 ] @
Ako ja dobro kapiram, covek dobije neki ID i hoce da vidi koliko ih ima pre toga, odnosno koji je taj po redu (fizicki). Ne znam zasto mislis da si uradio lose resenje, COUNT() funkcija izuzetno brzo radi u mysql, pa je to i najbolje resenje.
[ CIIAPTAK @ 08.04.2004. 16:25 ] @
Da,da, Gorane, to sam htio.. Nista, mislio sam da ima neka funkcija za to.. Npr pronasao sam u MYSQL API funkcijama za C, da ima mysql_row_tell - to je upravo to, ali izgleda da PHP ne podrzava taj API - u helpu za PHP nema te funkcije, a kad sam pokusao da je upotrijebim u kodu dobio sam gresku..
http://www.mysql.com/doc/en/mysql_row_seek.html
http://www.mysql.com/doc/en/mysql_row_tell.html

Dejane, to mi nije problem ako korisnik ukuca neki NewsID koji ne postoji u bazi - skripta ustvari treba da prikaze 20 ili 50 vijesti odjednom, samo sto se na osnovu unesene ID vrijednosti odlucuje koju grupu vijesti ce da prikaze, itd.. Tu nema problema, napisacu nekoliko linija da to sve prodje glatko..