Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem

[es] :: MySQL :: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem

[ Pregleda: 3047 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

01011011

Član broj: 561
Poruke: 2341
*.hsd1.in.comcast.net.



+2 Profil

icon Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem15.11.2006. u 01:52 - pre 211 meseci
imam par tabela. Jedna je korisnik

KORISNIK

id_korisnika
ime_korisnika


e sad imam drugu koja se zove rezultati

id_rezultata
id_kola
id_korisnika (inace field se zove domacin)
id_korisnika (gost)
rezultat1
rezultat2


e sad Korisnik1 i korisnik2 su brojevi ili id koji se referisu na korisnik tabelu.

Sada mogu da povucem sledece.
domacin - gost rezultat1:rezultat2

ali zelim da povucem iz baze umjesto toga domacin i gost da pise ustvari ime tima. Nikako da skontam.


evo sta imam do sad.



Code:
SELECT distinct
korisnik.ime_tima,
korisnik.ime_tima,
TLParovi.domaciP,
TLParovi.gostiP
FROM TLParovi, timovi

WHERE
timovi.id_korisnika in (TLParovi.domaci, TLParovi.gosti)


e sad ovo mi skoro sve daje sta hocu samo sto isti tim protiv istog tima, i vidim ja gdje grijesim, samo ne znam kako da odradim ovo, pa ako ima neko da pomogne.

Hvala.
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
216.5.82.*



+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem15.11.2006. u 15:26 - pre 211 meseci
mozda sam malko iskomplikovao..

potrebno je da se prikazu rezultati iz druge tabele, gdje su domaci i gosti (koji su inace ID's) ali da se ne prikazju id(brojevi) nego imena iz druge tabele.

 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem15.11.2006. u 16:18 - pre 211 meseci
Zakomplikovao si ga bas do dzadza...
Prvo spominjes tabele rezultati i korisnik, a potom u primjeru navodis tabele TLparovi i timovi, a nakadno dodajes jos neke zbunjujuce hintove...

Koliko sam ja tebe shvatio, treba ti self-join:
Citat:
SELECT k1.ime_korisnika, k2.ime_korisnika, r.rezultat1, r.rezultat2
FROM rezultati r, korisnik k1, korisnik k2
WHERE k1.id_korisnika = r.domacin
AND k2.id_korisnika = r.gost;

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
216.5.82.*



+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem15.11.2006. u 18:45 - pre 211 meseci
Care ti si meni bog :) Hvala lepo... Znas kako je kad satima nesto radis i onda dodjes do faze gdje ti nista ne izgleda onako kako bi trebalo :)
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.hsd1.in.comcast.net.



+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem16.11.2006. u 07:09 - pre 211 meseci
znaci ovo mi treba...

Vidi sad....


znaci ovo je query oko kojega si mi ti pomogao.

Code:

SELECT k1.ime_tima as domaci, k2.ime_tima as gosti, r.domaciP as dp, r.gostiP as gp 
FROM TLParovi r, timovi k1, timovi k2 
WHERE k1.id_korisnika = r.domaci 
AND k2.id_korisnika = r.gosti


e sad imam drugi query koji glasi ovako...

Code:

SELECT timovi.ime_tima, count(*) AS P 
FROM `parovi`, `tipovi`, `timovi` 
WHERE tipovi.id_kola=13 and tipovi.id_korisnika = timovi.id_korisnika 
and tipovi.id_para = parovi.id_para 
and parovi.rezultat = tipovi.tip 
and parovi.id_kola = tipovi.id_kola 
and timovi.liga_id = '1' 
group by timovi.id_korisnika asc


e sad da ne dodje do zabune. u TLParovi su parovi ovi moje lige, a Parovi tabela su pravi parovi timova.

sad sta treba da uiradim je da updejtujem ovo gore TLParovi ovako.

Ova ispod skripta izvlaci ime tima i id tima i koliko je pogodaka imao u zavisnosti na jos jednu tabelu, sto nije bitna. E sada bih volio da taj id i broj pogodaka updejtujem ovu gore tabelu koju sam selektovao, ali kako da napravim diskriminaciju izmeju gosti poeni i domaci poeni??

hm...

Pomoc, mnogo sam ti zahvalan.
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem16.11.2006. u 10:00 - pre 211 meseci
Sorry, ali ja nisam vidovit... Ne znam kakav rezultat ocekujes, a i objasnio si zbrda-zdola...
I opet u primjeru imas ove nazive tabela `parovi`, `tipovi`, `timovi`, a pricas o TLParovi ...

Kad bolje objasnis problem, napises kakav rezultat ocekujes i das ISPRAVNE primjere, onda ce ti mozda neko znati i pomoci.

Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
216.5.82.*



+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem16.11.2006. u 15:38 - pre 211 meseci
Epa pazi ovako.

imaju 4 table sa kojima ovo radim. Znaci

timovi - svi timovi u mojoj fantasy ligi (id_korisnika, ime_tima, itd.) moji timova u svakoj ligi ima 12 i svako igra protiv svakog kako se kola u meridijan ligi mijenjaju tako se i moji korisnici mijenjaju.


parovi - (ovo su parovi iz Prve Meridijan LIge, znaci id_kola = 14, id_para=1233 domaci i gosti su hard coded partizan, zvezda, bezanija, bla bla bla) i sve su ubaceni u bazu i tu ima polje rezultat, koje nije rezultat nego ustvari 1 X 2 znaci u zavistnosti ko pobjedi ja to ukucam u tu tabelu. aKO pobjedi partizan ja stavim 1 i tako dalje.

E sad ima tabela Tipovi koja sadrzi tipove od mojih korisnika i ona izgleda nesto ovako

id_korisnika, id_kola, id_para, tip

Gdje je id_kola i id_para referencovano na parovi tabelu.


E sad oni svi svake nedelje normalno tipuju. i npr imamo ove parove (ovo je ustvari pravi data koji sam imao)

I Liga
ICN - Red
Skubi - JensonButton
EnjoySarma - MvP
Grob - VojaDevil
ManchesterUtd - Milanche
RadnickiKg - Flood

Recimo to su parovi prve lige moje. E sada oni svi tipuju na 6 istih utakmica iz Prve meridijan lige. i njihovi tipovi se sacuvavaju u tabeli tipovi.


Znaci ovi timovi, gledaju rekorde iz parovi, i te rekorde tipuju, i to se sve sacuvava u tabeli tipovi.


E sad. Kad se utakmice zavrse, ja ubacujem kako su pravi timovi igrali (Partizan, Zvezda, itd) u tabelu parovi, jer tamo ima polje koje se zove rezultat i koje sam ispocetka ostavio bio NULL, a sada mogu da ga popunim da bih druge stvari mogao da utvrdim.

Ja imam skriptu koju sam napisao nabrzaka, verovatno moze i bolje, koja kada ukucam golove u parovi tabelu, onda ide i poredi tipove korisnika za to kolo, sa ovim pravim tipovima i daje mi broj koliko je odredjeni korisnik pogodio tacnih utakmica.

znaci ovako nesto.

Code:

SELECT timovi.ime_tima, count(*) AS P 
FROM `parovi`, `tipovi`, `timovi` 
WHERE tipovi.id_kola=13 and tipovi.id_korisnika = timovi.id_korisnika 
and tipovi.id_para = parovi.id_para 
and parovi.rezultat = tipovi.tip 
and parovi.id_kola = tipovi.id_kola 
and timovi.liga_id = '1' 
group by timovi.id_korisnika asc



E sad dobijem npr.
ICN - 4
Red - 3
i tako dalje


e sada ja sam do sada manualno onda postavljao rezultat mojih timova da ljudi vide i sredjivao manualno tabele i sve to uzme puno vremena. Znaci tu dolazi ova TLParovi tabela koja sadrzi znaci
ovako nesto
Field Type
id_para int(11)
id_kola int(11)
liga_id int(11)
domaci int(11)
gosti int(11)
domaciP int(11)
gostiP int(11)

e sada ovo si mi na pocetku pomogao da prikazem ovaj data tacno.

Pazi id_para nije referencovano nigjde, to je znaci samo autoincrement za ovu tabelu, i nista bas ne referencuje, id kola je isto kao i id_kola u parovi tabeli znaci tu se vrsi konekcija,
liga_id je da bih utvrdio poslije koju ligu da povucem.
domaci i gosti su (id_korisnika) znaci samo brojevi, koji su vec ukucani prije u tabelu TLParovi i vec su napravljeni parovi do kraja lige, znaci samo polja
domaciP i gostiP nisu ukucani oni su NULL. i znaci.

Sad treba da ih populisem jer imam vec gore sa skriptom koliko je ko pogodio, sad treba da to ubaci u ovu tabelu za datog korisnika i da se poslije pokazu rezultati na sajtu.

E sada problem koji imam je recimo prvi par je

domaci = 57 i gosti = 13

53 = ICN
13 - RED

E sad kako da utvrdim gdje sta ispisati. znaci kako da se utvrdi kad da ukucam za domaciP a kad za gostiP.

znaci RED nece uvijek biti domacin, niti ce uvijek biti gost, i u zavisnosti od toga moram da nzam gdje da upisem njega. u TLParovi tabelu

znaci imam sad trenutno
id_para = 1
id_kola = 14
liga_id = 2
domaci = 53 (icn)
gosti = 13 (red)
domaciP = NULL
gostiP = NULL

E sad treba od one skripte gore gdje sam izracunao koliko je ko pogodio da ubacim ovdje u tabelu te rezultate.

znaci posto sam rekao da je ICN pogodio 4 a Red JE POGODIO 3 onda bi trebao da update ovaj par da bude ovako.

id_para = 1
id_kola = 14
liga_id = 2
domaci = 53 (icn)
gosti = 13 (red)
domaciP = 4
gostiP = 3

poslije to mogu pokazati na sajtu sa onom gore skriptom koju si mi pomogao. Kkao sad da utvrdim gde da insertujem npr domaci, kako da updejtujem za domaci id recimo domaciP, field?

Nadam se da je sad jasnija slika sta hocu da uradim, ovaj dizajn je nadogradjivan jer je nabrzaka ispocetka radjen, tako da nista nije kako treba ali odradjiva za sad dobar posao.

aKO JE konfuzno, znam da sam se ja izgubio, moracu da potrazim neki drugi metod. Ali mislim da sam se potrduio da objasnim st ami treba.


Hvala



 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
216.5.82.*



+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem16.11.2006. u 21:26 - pre 211 meseci
Kako sam ja rijesio ovo sa php, mada nije bas performance dobro, ali radi :)


Code:


  $result = mysql_query("SELECT timovi.id_korisnika, count(*) AS P FROM `parovi`, `tipovi`, `timovi` 
WHERE tipovi.id_kola= '$id_kola' and tipovi.id_korisnika = timovi.id_korisnika 
and tipovi.id_para = parovi.id_para and parovi.rezultat = tipovi.tip 
and parovi.id_kola = tipovi.id_kola group by timovi.id_korisnika asc") or 
    die (mysql_error());
while ($row = mysql_fetch_assoc($result))
{
    $id_k = $row["id_korisnika"];
    $po = $row["P"];

    //Search through the TL table for ID korisnika as domaci
    $query2 = "SELECT 1 FROM TLParovi WHERE domaci = '$id_k' AND id_kola = '$id_kola'";
         
         $result2 = mysql_query($query2);
         //echo "$result2";
         $affected_rows2 = mysql_num_rows($result2);
                  
             if($affected_rows2 == 1)
            {
                //ovaj tim je domacin daj da ga insertujemo u domacina :)
                $queryX = "UPDATE TLParovi SET domaciP = '$po' where domaci = '$id_k'";

                mysql_query($queryX);

                echo "Updated " . $id_k . "with" . $po . " as guest<p>";
            }
            else
            {
                //bogami je ovaj tim gost, da mi njega spucamo kao gosta :)
                $queryY = "UPDATE TLParovi SET gosti = '$po' where gosti = '$id_k'";

                 mysql_query($queryY);
                 
                echo "Updated " . $id_k . "with" . $po . " as visitor <p>";
            }
}
mysql_free_result($result);




Znaci ako imas bolju ideju, govori :)
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.hsd1.in.comcast.net.



+2 Profil

icon Re: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem17.11.2006. u 01:53 - pre 211 meseci
Vec sam odradio ovako posao, nije lose :)
 
Odgovor na temu

[es] :: MySQL :: Kako povuci napraviti ovo, mozda ima jednostavnija solucija a ja samo komplikujem

[ Pregleda: 3047 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.