Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Pobieranie danych z 4 tabel
Forum PHP.pl > Forum > Przedszkole
Crea17
Witam, jestem początkujący w PHP i mam pewien problem. Otóż mam 4 tabele:

prefix_articles - artID, date, saved, title
prefix_blogss - blogID, date, saved, title
prefix_interviews - interID, date, saved, title
prefix_news - newsID, date, saved, title , published

Data jest zapisana poprzez 14cyfr, czyli microtime czy jakoś tak podobnie to się nazywa

Chcę zrobić skrypt, który będzie pobierał 5 ostatnich rekordów. Dla zobrazowania ma to wyglądać tak:

1. Tytuł Newsa 21.04.2010r
2. Tytuł Artykułu 19.04.2010r
3. Tytuł Newsa 18.04.2010r.
4. Tytuł Wywiadu 1.04.2010r.
5. Tytuł Blogu 20.03.2010r.

Wie ktoś jak napisać zapytanie, żeby takie coś można było wyświetlić poprzez pętle while?
piotrooo89
google -> LIMIT
Crea17
Wiem jak działa LIMIT, ale to ma pobrać max 5 rekordów wg daty z tych 4 tabel
piotrooo89
w takim razie:
google -> UNION lub UNION ALL
Crea17
Nie idze;/ W zapytaniu dałem 2 tabele:
  1. "SELECT articlesID,date,saved FROM ".PREFIX."articles UNION SELECT newsID,date,saved FROM ".PREFIX."news"


I przy ładowaniu strony zatrzymuje się w tym miejscu gdzie ma być skrypt i dalej się nic nie ładuje
piotrooo89
Temat: Jak poprawnie zada pytanie przeczytaj i zdebuguj. a co do kodu czym jest tajemniczy PREFIX?
Crea17
PREFIX jest to początek każdej tabeli zdefiniowany wcześniej w pliku z danymi do bazy. np as_asd_

Edit:

Przeczytałem ten temat i po wpisaniu:
  1. ini_set('display_errors','1');


Nic się nie zmienia.

Kod od tego skryptu to narazie tylko zapytanie
  1. $ergebnis = safe_query("SELECT articlesID,date,saved FROM ".PREFIX."articles UNION SELECT newsID,date,saved FROM ".PREFIX."news");


Wyjaśnie odrazu, że safe_query to jedna z funkcji CMS'u.

Wynik tego zapytania można zobaczyć tutaj: http://rewrite.mg-host.pl/
piotrooo89
a nie możesz jakoś mysql_error wrzucić tam? spróbuj bezpośrednio do bazy wkleić zapytanie.
Crea17
  1. Błąd
  2. zapytanie SQL:
  3.  
  4. "SELECT articlesID,date,saved FROM ws_Ka2_articles UNION SELECT newsID,date,saved FROM ws_Ka2_news"
  5.  
  6. MySQL zwrócił komunikat:
  7.  
  8. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"SELECT articlesID,date,saved FROM ws_Ka2_articles UNION SELECT newsID,date,save' at line 1


Edit:

Mój błąd. dałem "" w zapytaniu, No ale tak w bazie działa zapytanie a przez skrypt się zawiesza

Edit2:

Wkleiłem nawet kod z bazy do php i to samo;/

Edit3:

Ok. Działa w skrypcie. wywaliłem to safe_query i dałem mysql_query i działa.

Dzięki za pomoc.
piotrooo89
ja sobie zrobiłem podobną bazę jak Ty masz i wszytko fajnie hula:

  1. SELECT artID, date, saved, title
  2. FROM `articles`
  3. UNION SELECT blogID, date, saved, title
  4. FROM blogs


teraz pytanie czy masz poprawną kolejność kolumn? czy kolumny w obu tabelach są takie same?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.