• 19 odgovora
  • 3.997 pregleda
Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 13:09 · pre 215 meseci #1
Pozdrav!

Imam sljedeci problem!

Imam bazu u ovom obliku:

tabela kategorije: ID KAT | NAZIV


tabela podkategorije: ID PODKAT | ID KAT | NAZIV


tabela vijesti: ID | ID PODKAT | NAZIV | DATUM ......

zanima me sljedece:

Kako da napisem upit, kako bi dobio ovaj rezultat:

ISPIS ZADNJIH 10 VIJESTI IZ KATEGORIJE SA ID KAT = 3

ne mogu da skuzim uspostavljanje veze izmedu kategorije i podkategorije :((

hvala unaprijed!
Potpis
:::===>>> www.DOWNLOAD.ba <<<===::::::===>>> www.DOWNLOAD.co.ba <<<===:::
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 13:50 · pre 215 meseci #3
iz nekog razloga ovo mi ne radi. dobijam stalno gresku. :((

citiram sam sebe:

bitno mi je samo da dobijem ispis ovih 10 zadnjih vijesti iz odredene kategorije. nadam se da me razumijete sta zelim .))

hvala svima unaprijed
Potpis
:::===>>> www.DOWNLOAD.ba <<<===::::::===>>> www.DOWNLOAD.co.ba <<<===:::
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 14:14 · pre 215 meseci #4
select * from vijesti inner join podkategorije on vijesti.idpodkat = podkategorije.id where podkategorije.idkat = 3 order by datum desc limit 10

Probaj sad
Potpis
Romanes Eunt Domus
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 15:15 · pre 215 meseci #5
Ili probaj ovako:
Code:

SELECT naziv 
FROM vesti v, kategorije k, podkategorije pk 
WHERE k.id = 3 AND v.id_podkat = pk.id_podkat AND pk.id_kat = k.id_kat
LIMIT 10

Ili ovako sa podupitom:
Code:

SELECT naziv 
FROM vesti 
WHERE id_podkat IN 
(
   SELECT id_podkat
   FROM podkategorije 
   WHERE id_kat = 3
)
LIMIT 10

Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 18:47 · pre 215 meseci #6
Code:
" select * from vijesti inner join podkategorije on vijesti.idpodkat = podkategorije.id where podkategorije.idkat = 3 order by datum desc limit 10

Probaj sad " 


Dobijem ovu grešku:

Greška: Column 'id' in order clause is ambiguous ( s tim da sam umjesto datum ubacio id) :(
Potpis
:::===>>> www.DOWNLOAD.ba <<<===::::::===>>> www.DOWNLOAD.co.ba <<<===:::
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 18:50 · pre 215 meseci #7
Code:
 Ili probaj ovako:
Code:

SELECT naziv 
FROM vesti v, kategorije k, podkategorije pk 
WHERE k.id = 3 AND v.id_podkat = pk.id_podkat AND pk.id_kat = k.id_kat
LIMIT 10

Ili ovako sa podupitom:
Code:

SELECT naziv 
FROM vesti 
WHERE id_podkat IN 
(
   SELECT id_podkat
   FROM podkategorije 
   WHERE id_kat = 3
)
LIMIT 10


Ovo sam također pokušao, ne dobijem grešku, nego jednostavno mi ništa ne ispisuje, tj. prazno je polje. :(
Potpis
:::===>>> www.DOWNLOAD.ba <<<===::::::===>>> www.DOWNLOAD.co.ba <<<===:::
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 19:04 · pre 215 meseci #8
Citat:
b0sAnChE: 
Code:
" select * from vijesti inner join podkategorije on vijesti.idpodkat = podkategorije.id where podkategorije.idkat = 3 order by datum desc limit 10

Probaj sad " 


Dobijem ovu grešku:

Greška: Column 'id' in order clause is ambiguous ( s tim da sam umjesto datum ubacio id) :(



Ajmo jos jednom :)

select * from vijesti inner join podkategorije on vijesti.idpodkat = podkategorije.id where podkategorije.idkat = 3 order by vijesti.datum desc limit 10

ambiguous kaze kad ne zna kojoj tabeli pripada polje id odnosno datum u order by.
Potpis
Romanes Eunt Domus
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 19:38 · pre 215 meseci #9
kao prvo da se zahvalim na dosadasnje trudu.

ali evo ubacio sam i ovo, kao sto si mi i napisao. ali sad doduse ne javlja gresku, nego je jednostavno polje prazno. :(

ne kuzim sto nece. mozel se kako uradit pomocu dva ili vise upita. da se to nekako preko necega definise. :(( dode mi da placem sto nece :)
Potpis
:::===>>> www.DOWNLOAD.ba <<<===::::::===>>> www.DOWNLOAD.co.ba <<<===:::
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 19:59 · pre 215 meseci #10
A u kom smislu "prazno polje"? Jel ti to testirash u, npr. PHPMyAdmin-u, ili direktno isprobavash te upite u PHP kodu?
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 20:19 · pre 215 meseci #12
kako ne bi mi napamet pisali query, bilo bi korisno da prvo posaljes izlaz:

SHOW CREATE TABLE kategorije\G
SHOW CREATE TABLE podkategorije\G
SHOW CREATE TABLE vesti\G

i onda mi pogledamo sta se tu tacno kako zove i napisemo ti query.

Ono sto bi dodatno bilo korisno je SELECT COUNT(*) FROM za svaku od te 3 tabele.


Code:

-- ISPIS ZADNJIH 10 VIJESTI IZ KATEGORIJE SA ID KAT = 3

SELECT * FROM 
  `vesti`, `podkategorije`
WHERE 
  `podkategorije`.`idkat` = 3 AND
  `vesti`.`idpodkat` = `podkategorije`.`idpodkat`
ORDER BY `vesti`.`datum' DESC
LIMIT 10



cini mi se da si ovakav upit vec dobio, ako ti on ne vraca rezultat - ili nisi dobro objasnio strukturu (te daj tacan izgled tabela), ili podatke nisi upisao u bazu kako treba. Daj izlaz od: SELECT idkat, idpodkat, datum FROM podkategorije WHERE idkat=3 LIMIT 10; da vidimo sta je uopste u toj bazi
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 20:21 · pre 215 meseci #13
Citat:
b0sAnChE: direktno upit u php file-u.


prvo probaj upit iz nekog query browser-a (npr mysql cli-a ili neceg slicnog) kako bi izbegao ostale moguce greske (npr ono =3 ti je verovatno parametar u php-u mozda si to pogresno upisao) .. dakle prvo isprobaj da li upit radi kako treba iz cli-a a onda ga teg implementiraj u php (posto upit koji si vec dobio od nikole i rokera treba da radi
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 20:39 · pre 215 meseci #15

evo i sta pise u php-u

[code]<?php
$query = ("select * from programi inner join podkategorije on programi.podkat = podkategorije.id where podkategorije.kat = '3' order by programi.id desc limit 0,10");
$result = mysql_query($query) or die('Greska: ' . mysql_error());
while ($row = mysql_fetch_array($result)) {


[sub][[b]Ovu poruku je menjao b0sAnChE dana 07.02.2009. u 23:27 GMT+1[/b]][/sub]
Potpis
:::===>>> www.DOWNLOAD.ba <<<===::::::===>>> www.DOWNLOAD.co.ba <<<===:::
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 20:41 · pre 215 meseci #16
Citat:
b0sAnChE: evo pravim screenshotove od svih tabela --- strpite se samo malo. i poslat cu php code


SCREENSHOTOVE?!?!? da neces mozda da ih snimis kao bmp, pasteujes u word pa uploadujes doc fajlove ???

SHOW CREATE TABLE imetabele;

daje sve potrebne podatke o tabeli (skript koji kreira tabelu), screen shot nekog alata koji ti koristis nece dati nista vise podataka, potrosice svoje vreme, nase vreme, bandwidth i na kraju krajeva je %$%#()$&%

Cak i windoze imaju copy paste, i za windoze postoje klijenti i u njima mozes da izvrsis upit i dobijes rezultat ...
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 21:10 · pre 215 meseci #18
show create table je tako jednostavna komanda :) ...

pitao si za upit vezano za podkategorije i vesti, poslao si upit koji spominje neke programe ...

sta zelis da dobijes kao izlaz, iz kojih tabela ? daj "show create table imetabele" za tabele iz kojih hoces da dobijes rezultat. objasni tacno sta hoces u rezultatu (ako ti trebaju programi reci programi, ne vesti) ... ne mozes da ocekujes da mi citamo misli a ti da dajes informacije na kasicicu ...

dakle

- koja je struktura tabela (show create table imetabele - ne screenshot iz phpmyadmina)
- sta hoces da dobijes kao rezultat
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Hitno potrebna pomoc oko MYSQL upita! 07.02.2009. u 21:16 · pre 215 meseci #19
Citat:
b0sAnChE: 
evo i sta pise u php-u

Code:
<?php
$query = ("select * from programi inner join podkategorije on programi.podkat = podkategorije.id where podkategorije.kat = '3' order by programi.id desc limit 0,10");
$result = mysql_query($query) or die('Greska: ' . mysql_error());
while ($row = mysql_fetch_array($result)) {
$program = $row['naziv'];
$id=$row['id']; 
$programm = str_replace(" ","-","$program");

$br=strlen($opiss);
if($br>150) {
$opiss = substr("$opiss", 0, 150);
$opiss = "$opiss...";
}
echo"<li><a href='$programm-vise-$id.html' title='$program'><b>&nbsp;$program</b></a></li>";
}
?>

Ako hocesh da koristish asocijativan pritstup rezultatu upita (u tvom sluchaju $row['naziv'], itd.), koristi mysql_fetch_assoc() ili prosledi i drugi parametar mysql_fetch_array() f-ji, u tvom sluchaju - MYSQL_ASSOC.
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme