vyber z viacerych tabuliek

Programovacie jazyky, rady, poradňa...
9mike
Amateur
Amateur
Príspevky: 18
Registrovaný: 06 feb 2007, 15:17

vyber z viacerych tabuliek

Príspevok od používateľa 9mike »

Mam 2 tabulky tab1 a tab2.

V tab1 je stlpec:
farba - a v nom hodnoty:
modra
cervena
cierna

V tab2 je takisto stlpec:
farba - a v nom hodnoty:
zelena
biela
zlta

Kód: Vybrať všetko


function vypis()
{
	global	$link;

	$query = " SELECT * FROM `tab1`, `tab2` ";
	$result = mysql_query($query, $link) or die(mysql_error());
	echo "<table>\n";
	while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
		echo "<tr>";
		echo "<td>${row['farba']}</td>";
		echo "</tr>\n";
	}
	mysql_free_result($result);
	echo "</table>\n";
	echo "<hr>\n";
}
Problem je ze nevypise vsetky farby z prvej a druhej tabulky, ale len z druhej tabulky a to takto:


zelena
zelena
zelena
biela
biela
biela
zlta
zlta
zlta

Nevie niekto ako dostanem pod seba 6 farieb z tych 2 tabuliek bez opakovania? dik
BeBe
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 55
Registrovaný: 29 jún 2007, 19:42
Bydlisko: Kosice
Kontaktovať používateľa:

Príspevok od používateľa BeBe »

mno ono to vyzera tak, ze ono ten vysledok ma 2 stlpce: 1 z tab1 a 2. z tab2 a robi ti to kombinacie obsahov (preto aj to opakovanie)

skus toto: select * from tab1 union all select * from tab2

malo by ti to vypluvnut vysledky z tab1 a hned za tym z tab2 (aspon takto chapem o co ti ide)

to tvoje ti kladie tabulky vedla seba to s union all ich kladie pod seba
9mike
Amateur
Amateur
Príspevky: 18
Registrovaný: 06 feb 2007, 15:17

Príspevok od používateľa 9mike »

hej toto som potreboval diky

// EDIT: neda sa este spravit aby som zistil ktore udaje su z ktorej tabulky?

napriklad takto nejak ze by to vypisalo:

Kód: Vybrať všetko

1 tabulka
modra
cervena
cierna

2 tabulka
zelena
biela
zlta

3 tabulka
...
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

da sa urobit toto

Kód: Vybrať všetko

SELECT 'tabulka1' as tab, farba FROM tabulka1
UNION ALL
SELECT 'tabulka2' as tab, farba FROM tabulka2
9mike
Amateur
Amateur
Príspevky: 18
Registrovaný: 06 feb 2007, 15:17

Príspevok od používateľa 9mike »

hmm nic sa nezmenilo :?
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

9mike napísal:hmm nic sa nezmenilo :?
ale zmenilo. v kazdom riadku vies povedat z ktorej tabulky to je.
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

tak ked to uz chces mat rozdelene tak to daj cez viac dotazov a ides...
kazdu tabulku daj zvlast...
9mike
Amateur
Amateur
Príspevky: 18
Registrovaný: 06 feb 2007, 15:17

Príspevok od používateľa 9mike »

no chcel som to cez jeden dotaz, nech to vypise automaticky, bude tam 30 tabuliek a kazdu kebyze mam vypisovat...
BeBe
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 55
Registrovaný: 29 jún 2007, 19:42
Bydlisko: Kosice
Kontaktovať používateľa:

Príspevok od používateľa BeBe »

9mike napísal:neda sa este spravit aby som zistil ktore udaje su z ktorej tabulky?
[/code]
skus dat do kazdej tabulky ako prve ze tabulka 1 atd. :D
abo skus este daco taketo:

tabulka 1
union all
select * from tab1
union all
tabulka 2
union all
select * from tab2

mozno to tabulka 1 bude treba dat cez values(tabulka 1)
skus sa s tym tabulka1 pohrat troska
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

9mike napísal:no chcel som to cez jeden dotaz, nech to vypise automaticky, bude tam 30 tabuliek a kazdu kebyze mam vypisovat...
Tak si urobíš funkciu, ktorá urobí SELECT z jednej tabuľky. Tú funkciu budeš volať napr. pomocou cyklu for.
Neviem prečo, ale zdá sa mi, keď máš nejakú informáciu v 30 tabuľkách, že nemáš správny návrh tabuliek.
9mike
Amateur
Amateur
Príspevky: 18
Registrovaný: 06 feb 2007, 15:17

Príspevok od používateľa 9mike »

V kazdej tabulke budu zapasy z jedneho tyzdna, spolu je to vyse 200 riadkov v DB, mal by som to dat do jednej tabulky?
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

podla mna kludne ano..
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

jasne. to vobec nie je problem.
Napísať odpoveď