Poslao: 27 Avg 2011 18:22
|
offline
- Milan Kragujević
- tzv. Junior PHP Programer
- Pridružio: 20 Avg 2011
- Poruke: 76
- Gde živiš: Klenovnik, Srbija
|
Ovako.
Naslov je nerazvumljiv, al šta da radim
Ovako:
Imam tabelu:
ID | IME | OPIS | KOMENTARID
1 | Ime1 | AAAA | 1
2 | Ime2 | TPRS | 1
3 | Ime3 | ADSD | 1
4 | Ime4 | FRRR | 0
Ako je komentarid = 0, ne prikazuju se komentari.
Ako je 1, prikazuju se.
Imam i drugu tabelu:
ID | POSTID | KOMENT
1 | 1 | KOMENTARRRRRSĆF DSFHDJHAS
I imam while loop.
Hoću da dobijem ovo:
Ime: (ime-iz-baze)
Opis: (opis-iz-baze)
Broj komentara (count(id) ali iz druge tabele.)
Znači da u while loop-u može da prikaže broj komentara svakog članka.
Hvala unaped!
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 27 Avg 2011 21:52
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
SELECT t1.ime, t1.opis, count(*) as broj
FROM tabela1 t1
LEFT JOIN tabela2 t2 ON t1.komentar_id = t2.id
GROUP BY t1.komentar_id
Inace, dovoljna ti je i jedna tabela za ovako nesto.
|
|
|
|
Poslao: 28 Avg 2011 00:21
|
offline
- Milan Kragujević
- tzv. Junior PHP Programer
- Pridružio: 20 Avg 2011
- Poruke: 76
- Gde živiš: Klenovnik, Srbija
|
Napisano: 27 Avg 2011 23:03
znam da je dovoljna, ali neču da bude previše komplikovano, kako bi neko to mogao da oržava
Dopuna: 28 Avg 2011 0:21
U međuvremenu sam promenio strukturu i sada se javlja problem - KAKO?
Nova struktura je:
clanci:
komentari:
Znači ima dve tabele.
Hoću da clanci povuče iz komentari ukupan broj komentara, koji imaju post_id koji je jednak trenutnom id-u članak.
Sve se ovo dešava kroz while loop.
Probao sam ovako, ali neće
SELECT komentari.ime, komentari.id, komentari.email, komentari.komentar, komentari.datum, komentari.post_id, komentari.vreme, komentari.objavljeno, clanci.id, clanci.ime, clanci.sadrzaj, clanci.dan, clanci.mesec, clanci.godina, clanci.objavljeno, clanci.komentarid, clanci.slika, clanci.kategorija, clanci.slajder, clanci.autor, count(komentari.id) as broj
FROM clanci c1, komentari k1
LEFT JOIN clanci c2 ON k1.post_id = c1.id
|
|
|
|
Poslao: 28 Avg 2011 14:27
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Prvo sto treba da proveris da li upit lepo radi, tako sto zveknes ceo upit u bazu i vidis sta ce ti vratiti, moze da se desi da sintaksa nije dobra i ne radi. Evo ti primer kao funkcionise Left Join:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
Gledajuci tvoj upit, ja bih izbacio "clanci c1" i to napisao posle LEFT JOIN, jer tu upisujes drugu tabelu i kasnije upisujes njihovu vezu.
|
|
|
|
Poslao: 28 Avg 2011 19:57
|
offline
- Milan Kragujević
- tzv. Junior PHP Programer
- Pridružio: 20 Avg 2011
- Poruke: 76
- Gde živiš: Klenovnik, Srbija
|
Napisano: 28 Avg 2011 15:43
Hvala, spasio si me!!!
Dopuna: 28 Avg 2011 19:57
Opet ne radi...
Ne mogu da nateram upit da radi sa LIMIT 2,10 (ili bilokojibroj, 10)...
Lepo radi bez deljanja na stranice, ali sa deljenjem ne radi..
|
|
|
|
|
Poslao: 29 Avg 2011 00:54
|
offline
- Milan Kragujević
- tzv. Junior PHP Programer
- Pridružio: 20 Avg 2011
- Poruke: 76
- Gde živiš: Klenovnik, Srbija
|
SELECT clanci.*, komentari.*, count(komentari.id) as brojac, kategorije.*
FROM clanci WHERE clanci.objavljeno = '1' AND komentari.objavljeno = '1'
LEFT JOIN komentari
ON clanci.id = komentari.post_id
LEFT JOIN kategorije ON clanci.kategorija = kategorije.id GROUP BY clanci.id LIMIT $start, $limit
$limit je 9 , a $start zavisi od strane na kojoj se nalazi korisnik, a može da bude 9,18,27,36,45,54,63,72,81,90,99,118 [...]
|
|
|
|
Poslao: 29 Avg 2011 10:55
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
A da li si siguran da dobijaš vrednosti u varijablama $start i $limit? Upit bez LIMIT-a radi dobro?
|
|
|
|
Poslao: 29 Avg 2011 14:14
|
offline
- Milan Kragujević
- tzv. Junior PHP Programer
- Pridružio: 20 Avg 2011
- Poruke: 76
- Gde živiš: Klenovnik, Srbija
|
Siguran sam da dobijan vrednosti jer sam echovao sql upit.
Neće da radi ni bez LIMIT
|
|
|
|
Poslao: 29 Avg 2011 18:57
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Mislim da ovo ne mozes:
SELECT clanci.*, komentari.*, count(komentari.id) as brojac, kategorije.*
moras da navedes sve kolone koje ti trebaju. Kada ehujes taj upit, kopiraj ga i ubaci ga u phpmyadmin u SQL tab i pokreni ga. Vidi sta ces dobiti, mislim da ti ovo gore sto sam naveo pravi problem, a to ces videti ako izbaci neku gresku, a mislim da ce u ovom slucaju biti sintaksna greska.
|
|
|
|