Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Jak pobrać info z której bazy pobrał rekord przy poleceniu UNION
neo1986kk
post
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Chodzi mi o to ze mam 2 bazy na przyklad

baza zwierzeta


id, imie,wiek
1 burek 5
2 kicia 3
3 max 12


baza ludzie

id, imie, wiek
1 marta 14
2 kasia 12
3 konrad 19


no i chce sobie pobrac wiek z tych 2 tabel

select imie,wiek from zwierzeta union select imie,wiek from ludzie

i teraz nadchodzi sedno sprawy

while($row=mysql_fetch_assoc($sql))
{

$row['imie'] ma $row['wiek'] lat, dane pobrane z tabeli (i tutaj chcialbym napisać, z której tabeli wzial dane)

}


domyslam sie ze są 2 opcje
1. nie da się bez dodatkowych kolumn kontrolnych w tabelach.
2. nalezy przy pobieraniu nadać jakąś dodatkową zmienną, jeśli tak to jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
croc
post
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Musisz pobrać pseudokolumnę we wszystkich połączonych zapytaniach.
Go to the top of the page
+Quote Post
neo1986kk
post
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


no to sie domysllilem ale jak to zrobic walsnie

mam poprostu do zapytania dodac np

select *, pseudo='z' as pseudo from zwierzeta union select *, pseudo='l' as pseudo from ludzie
while($row=mysql_fetch_assoc($sql))
{

if($row['pseudo']==z) //zwierzeta
else //ludzie

}

dobrze kombinuję?

no to sie domysllilem ale jak to zrobic walsnie

mam poprostu do zapytania dodac np

select *, pseudo='z' as pseudo from zwierzeta union select *, pseudo='l' as pseudo from ludzie
while($row=mysql_fetch_assoc($sql))
{

if($row['pseudo']==z) //zwierzeta
else //ludzie

}

dobrze kombinuję?
Go to the top of the page
+Quote Post
croc
post
Post #4





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Prawie (IMG:style_emoticons/default/smile.gif)

  1. SELECT *, 'z' AS pseudo FROM zwierzeta UNION SELECT *, 'l' FROM ludzie


W drugiej tabeli już nie musisz podawać aliasu, bo i tak pola muszą się zgadzać po kolei.
Go to the top of the page
+Quote Post
neo1986kk
post
Post #5





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


a nie wyswietli mi bledu ze nie ma kolumny "z" w tabeli?
Go to the top of the page
+Quote Post
croc
post
Post #6





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Ale to forum dzisiaj zamula... (IMG:style_emoticons/default/closedeyes.gif)

Możesz pobierać bez oporów dane będące czymś innym niż wartości z pól. Pamiętaj, że zgodnie ze składnią SQL nawet zapytania w stylu:
  1. SELECT 1, 5 - 8, 'kapusta'

są jak najbardziej poprawne (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
neo1986kk
post
Post #7





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


no zamula strasznie, aha no to dzięki za pomoc, pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 05:09