Crea17
4.05.2010, 15:48:55
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?
Crea17
4.05.2010, 15:56:27
Wiem jak działa LIMIT, ale to ma pobrać max 5 rekordów wg daty z tych 4 tabel
piotrooo89
4.05.2010, 15:59:08
w takim razie:
google -> UNION lub UNION ALL
Crea17
4.05.2010, 18:15:10
Nie idze;/ W zapytaniu dałem 2 tabele:
"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
4.05.2010, 18:16:53
Temat: Jak poprawnie zada pytanie przeczytaj i zdebuguj. a co do kodu czym jest tajemniczy PREFIX?
Crea17
4.05.2010, 18:21:20
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:
Nic się nie zmienia.
Kod od tego skryptu to narazie tylko zapytanie
$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
4.05.2010, 18:28:34
a nie możesz jakoś
mysql_error wrzucić tam? spróbuj bezpośrednio do bazy wkleić zapytanie.
Crea17
4.05.2010, 18:31:29
Błąd
zapytanie SQL:
"SELECT articlesID,date,saved FROM ws_Ka2_articles UNION SELECT newsID,date,saved FROM ws_Ka2_news"
#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
4.05.2010, 18:46:40
ja sobie zrobiłem podobną bazę jak Ty masz i wszytko fajnie hula:
SELECT artID, date, saved, title
FROM `articles`
UNION SELECT blogID, date, saved, title
FROM blogs
teraz pytanie czy masz poprawną kolejność kolumn? czy kolumny w obu tabelach są takie same?