• 11 odgovora
  • 3.816 pregleda
Next product - Pomoc 06.07.2006. u 17:23 · pre 247 meseci #1
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]
Potpis
I don't need a girl for sex , All I Need is Binary and HEX
Re: Next product - Pomoc 06.07.2006. u 21:05 · pre 247 meseci #2
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!
Re: Next product - Pomoc 07.07.2006. u 14:21 · pre 247 meseci #3
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!
Re: Next product - Pomoc 07.07.2006. u 15:03 · pre 247 meseci #4
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.
Re: Next product - Pomoc 07.07.2006. u 15:10 · pre 247 meseci #5
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????
Re: Next product - Pomoc 07.07.2006. u 15:17 · pre 247 meseci #6
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.
Potpis
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
Re: Next product - Pomoc 07.07.2006. u 15:19 · pre 247 meseci #7
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. :)
Re: Next product - Pomoc 08.07.2006. u 00:09 · pre 247 meseci #8
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
Potpis
I don't need a girl for sex , All I Need is Binary and HEX
Re: Next product - Pomoc 08.07.2006. u 12:45 · pre 247 meseci #9
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.
Re: Next product - Pomoc 08.07.2006. u 14:57 · pre 247 meseci #10
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...
Potpis
I don't need a girl for sex , All I Need is Binary and HEX
Re: Next product - Pomoc 08.07.2006. u 15:16 · pre 247 meseci #11
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.
Potpis
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
Re: Next product - Pomoc 10.07.2006. u 08:27 · pre 247 meseci #12
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...
Potpis
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme