Forumi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 14.11.2011., 09:43   #1
aircanada
Premium
 
Datum registracije: Oct 2006
Lokacija: Split
Postovi: 335
PHP i mysql query

Postovanje.
Noviji sam sta se tice mysql-a, pa ako tko moze pomoc, bio bih jako zahvalan.

Imam tablicu u mysql-u, koja ima 20ak redataka. Napravio sam skriptu u phpu koja mi te sve podatke izvlaci. Ali ima 1 redak u toj tablici koji je vezan za drugu tablicu jednakim kljucem. U TABLICA_A taj red je PREDNOSTI, dok je u TABLICA_B taj red ID. ID koji ima svoj VALUE.
Sad, zelim da mi prikaze svih 20ak redova, ali da zamjeni taj red PREDNOSTI sa redom VALUE iz druge tablice.

Tablica_A
id - ime - adresa - prednosti - itd.....

Tablica_B
id - value


PREDNOSTI.TABLICA_A == ID.TABLICA_B, a treba prikazat VALUE.TABLICA_B
Mozda sintaksa nije dobra, ali nadam se da shvacate.
__________________



aircanada je offline   Reply With Quote
Staro 14.11.2011., 11:31   #2
Viperus
Premium
Moj komp
 
Viperus's Avatar
 
Datum registracije: Sep 2005
Lokacija: Zagreb
Postovi: 729
SELECT TABLICA_A.id, ime, adresa, TABLICA_B.ID FROM TABLICA_A LEFT JOIN TABLICA_B ON PREDNOSTI = TABLICA_B.id

(trebaš pisati TABLICA_A.id i TABLICA_B.ID zato što imaš 2 ista imena : id i ID, pa da sql kuži na koje misliš. Nije ni greška pisati TABLICA_A.ime itd.)
Viperus je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 14.11.2011., 12:51   #3
aircanada
Premium
 
Datum registracije: Oct 2006
Lokacija: Split
Postovi: 335
To mi je jasno, ali ako imam 20 redova u glavnoj tablici, zar nema nesto jednostavnije nego ih sve ispisat da bi zamjenio jedan red drugim redom druge tablice?
Imam ovo:
$result = mysql_query("SELECT * FROM TABLICA_A WHERE "uvijet" AND "uvijet"");

onda imam
while($row = mysql_fetch_array($result))

i dok imam u TABLICA_A koji zadovoljavaju uvijet, petlja while se vrti i ispisuje tih 20 redova. A sad zelim da umjesto tog jednog reda, "pozovem" value iz druge tablice.
__________________



aircanada je offline   Reply With Quote
Staro 14.11.2011., 15:22   #4
zmotani10
Premium
Moj komp
 
Datum registracije: Mar 2009
Lokacija: Međimurje
Postovi: 90
inace nije mi jasno zasto ti viperusov odgovor nije dobar.. dobio si SQL koji radi.. dohvaca sve i mjenja ime, tj nakon TABLICA_B.ID je htio staviti TABLICA_B.value.

Ovo je jos skraceniji upit bez left joina, al ovako se to radi.
Ako ti to nije dovoljno dobro uvijek mozes dohvat podatke iz jedne tablice i onda dok prikazujes ides po podatke iz druge

SELECT a.*, b.value FROM TABLICA_A a, TABLICA_B b WHERE b.id = a.PREDNOSTI AND "uvijet" AND "uvijet";
zmotani10 je offline   Reply With Quote
Staro 14.11.2011., 18:07   #5
aircanada
Premium
 
Datum registracije: Oct 2006
Lokacija: Split
Postovi: 335
Hvala obojici na odgovore.
Kao sta sam na pocetku rekao, tek sam u pocecima sa mysql-om, te mi ono gore dodaje jos jedan query, a to mi dosta cini kod nepreglednim i zbunjujucim.
Ovako napisano kao ti mi djeluje detaljnije i bolje rjesenje. Moguce da je on to isto rekao, ali ja ne vidim
U svakom slucaju, hvala obojici, probam sutra zmotani
__________________



aircanada je offline   Reply With Quote
Staro 15.11.2011., 10:37   #6
zmotani10
Premium
Moj komp
 
Datum registracije: Mar 2009
Lokacija: Međimurje
Postovi: 90
nemas problema nadam se da ce pomoci
zmotani10 je offline   Reply With Quote
Staro 15.11.2011., 12:58   #7
aircanada
Premium
 
Datum registracije: Oct 2006
Lokacija: Split
Postovi: 335
Super je, rjeseno je. Dobio sam sta sam htio. Puno hvala na pomoci.
No dosao sam do dodatnog problema

$result = mysql_query("SELECT a.*, b.value FROM TABLICA_A a, TABLICA_B b WHERE b.id=a.TABLICA_B_id AND uvijet1 AND uvijet2");

i pozovem $row['value'] i dobijem rezultat podtablice.

E sad, iduca stvar mi je sta imam jos jednu podtablicu, koja ima iste retke: id i value. Napravim upit sa uvrstavanjem i te druge tablice, ali mi se valjda zblesi, jer zove value, a ocito ne zna koji...
__________________



aircanada je offline   Reply With Quote
Staro 15.11.2011., 15:12   #8
zmotani10
Premium
Moj komp
 
Datum registracije: Mar 2009
Lokacija: Međimurje
Postovi: 90
$result = mysql_query("SELECT a.*, b.value AS BVALUE FROM TABLICA_A a, TABLICA_B b WHERE b.id=a.TABLICA_B_id AND uvijet1 AND uvijet2");


na ovaj nacin ti sad ispadne da b.value ti se ne dohvaca kao value nego kao naziv BVALUE pa ti se razliku je od ostalih..tako mozes dati naziv bilo kojoj koloni.. ako sam dobro shvatio pitanje
zmotani10 je offline   Reply With Quote
Staro 17.11.2011., 10:38   #9
aircanada
Premium
 
Datum registracije: Oct 2006
Lokacija: Split
Postovi: 335
Samo da javim da ste mi puno pomogli, te da se jos jednom zahvalim
__________________



aircanada je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na