PC Ekspert Forum

PC Ekspert Forum (https://forum.pcekspert.com/index.php)
-   Web dizajn, programiranje i ostalo (https://forum.pcekspert.com/forumdisplay.php?f=39)
-   -   PHP i mysql query (https://forum.pcekspert.com/showthread.php?t=223937)

aircanada 14.11.2011. 09:43

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.

Viperus 14.11.2011. 11:31

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.)

aircanada 14.11.2011. 12:51

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.

zmotani10 14.11.2011. 15:22

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 :D

SELECT a.*, b.value FROM TABLICA_A a, TABLICA_B b WHERE b.id = a.PREDNOSTI AND "uvijet" AND "uvijet";

aircanada 14.11.2011. 18:07

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 ;)

zmotani10 15.11.2011. 10:37

nemas problema :) nadam se da ce pomoci

aircanada 15.11.2011. 12:58

Super je, rjeseno je. Dobio sam sta sam htio. Puno hvala na pomoci.
No dosao sam do dodatnog problema :D

$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...

zmotani10 15.11.2011. 15:12

$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

aircanada 17.11.2011. 10:38

Samo da javim da ste mi puno pomogli, te da se jos jednom zahvalim ;)


Sva vremena su GMT +2. Sada je 17:12.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 1999-2024 PC Ekspert - Sva prava pridržana ISSN 1334-2940
Ad Management by RedTyger