[ Milan M. Radovic @ 06.07.2006. 17:23 ] @
Da li postoji neka funkcija PHP za MySQL koja pokazuje u kom je redu nasao rezultat...1 match.
I da li postoji nacin da se pozove posle SELECT odredjenog reda?

[Ovu poruku je menjao choks87 dana 06.07.2006. u 20:04 GMT+1]
[ Ivan Miladinović @ 06.07.2006. 21:05 ] @
Neznam za funkciju, ali znam jedan nacin. A to je ako ti je sadasnji proizvod ID = 10
ti sledeci u bazi trazi tako sto ces traziti da bude veci od sadasnjeg ID, a za previous product tako sto je manji... Nije komplikovano.

Kod mene radi. :)

Pozdrav!
[ Ivan Miladinović @ 07.07.2006. 14:21 ] @
Evo primer query kako ja to radim:

Ovo je trenutno prikazani proizvod:
Code:

$sql = "select * from tabela where news_id='$upit'";


Ovako trazim PRETHODNI proizvod:
Code:

$sql = "select * from tabela where news_id < $upit order by news_id desc limit 1";


I ovako trazim SLEDECI proizvod:
Code:

$sql = "select * from tabela where news_id > $upit order by news_id asc limit 1";



Mozes i da stavis $upit + 1 za sledeci upit ili $upit - 1 za prethodni, ali ako obrises jedan proizvod, nastace shit na stranici :)




Pozdrav iz Kuceva od Ivana!
[ broker @ 07.07.2006. 15:03 ] @
LIMIT moze da primi i dva parametra u kom slucaju prvi odredjuje redni broj prvog reda u rezultatu upita koji ce biti prikazan kao prvi, a drugi broj odredjuje broj sledecih redova koje treba prikazati, tako da u SELEC upitu

LIMIT n, 1

daje n-ti slog iz rezultata upita.

Id tabele ne mora biti slozen po velicini a cak n emora ni da bude numerik, tako da to nije zgodan nacin da se utvrdi koji je sledeci slog.
[ Ivan Miladinović @ 07.07.2006. 15:10 ] @
Citat:
broker: LIMIT moze da primi i dva parametra u kom slucaju prvi odredjuje redni broj prvog reda u rezultatu upita koji ce biti prikazan kao prvi, a drugi broj odredjuje broj sledecih redova koje treba prikazati, tako da u SELEC upitu

LIMIT n, 1

daje n-ti slog iz rezultata upita.


Da, ako hoces nrp za paginaciju se to koristi... LIMIT $startnumber, $lastnumber ali ne znam zasto bi (i kako) bi se koristilo za prikazivanje prethodnog i sledeceg proizvoda, daj primer.

Citat:
broker:Id tabele ne mora biti slozen po velicini a cak n emora ni da bude numerik, tako da to nije zgodan nacin da se utvrdi koji je sledeci slog.


Code:

order by news_id desc
order by news_id asc


A kazi mi sta mi rade ovih par reci u query-ju????
[ NikolaVeber @ 07.07.2006. 15:17 ] @
Ako imas jako veliki broj redova i ti je potrebno da izuzetno brzo pronadjes sledeci i prethodni, razmisli o dodavanju 2 polja sa indeksima ta dva trazena reda.
To je verovatno optimizovano na nivou DB engina, ali racunaj da prilikom izvrsenja
"select * from tabela where news_id < $upit order by news_id desc limit 1";
radis sortiranje cele baze, sto ume da bude zahtevno.
[ Ivan Miladinović @ 07.07.2006. 15:19 ] @
Da. Da. TO je ono sto i broker napomenuo ID moze da bude i alfanumericki znaci 92384kl3j45345098klj i u tom slucaju to nije pametno... Ali ko to radi, on sigurno ne koristi MySQL kao bazu.

Ja sam skapirao da coveku treba za neki mali projekat, pa sam shodno tome i dao odgovor.
[ Milan M. Radovic @ 08.07.2006. 00:09 ] @
Problem je sto korisnik unosi ID proizvoda...kombinacija brojeva i slova...
Kako onda da prepozna < i >


Ubicu se od muke,ne znam kako da uradim...probao sam da prebacujem sve u array pa kad nadje array da uradi echo indexa pre i indexa posle npr <b>brezultat[$i + 1]</b>

Gde je $i broj redova koje je presao....

Ali desava mi se da se dva proizvoda navodno nalaze u istom redu...sto je nemoguce
Mozda MySQL tabela nema uvek jednak broj redova pri iscitavanju...jbga

Help
[ broker @ 08.07.2006. 12:45 ] @
Pa samo stavil LIMIT n, 1 gde je n redni broj sloga. N uvecvas za jedan ako hoces sledeci ili smanjujes za jedan ako hoce prethodni slog i to je sve.

To ce da ti radi sa svakom tabelom.

Citat:
evil_angel_yu:
Da, ako hoces nrp za paginaciju se to koristi... LIMIT $startnumber, $lastnumber ali ne znam zasto bi (i kako) bi se koristilo za prikazivanje prethodnog i sledeceg proizvoda, daj primer.


Zato sto je upit "daj mi sledeci red" samo specijalan slucaj upita "daj mi sledecu stranu" u kome strana sadrzi samo jedan red.
[ Milan M. Radovic @ 08.07.2006. 14:57 ] @
Aaaa...uradio sam doduse drugacije...uneo sam kolonu za vreme unosa kao time()...

Sad radi...Fala pomogli ste mnogo sa onim LIMIT...nisam ni znao za to..
Pocinjem da se polako deprimiram...da li mogu sebe da nazivam programerom...
[ NikolaVeber @ 08.07.2006. 15:16 ] @
umesto vremena mozes da koristis i jos jedno id polje koje je auto increment. To polje bi onda trebao da koristis kao primary key, jer sve sto unosi korisnik je pod znakom pitanja. Id koji korisnik unosi treba da tretiras isto kao ime proizvoda i ostale podatke.
[ Dejan Topalovic @ 10.07.2006. 08:27 ] @
Upravo kao sto je NikolaVeber rekao. Tebi treba surogatni kljuc, tj. kreiraj jos jednu kolonu, npr. ID i postavi ju kao INT AUTO_INCREMENT, da ti ta kolona bude PRIMARY KEY umjesto te kombinacije brojeva i slova...