![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 7.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Chce zrobic skrypt newsow. Ma on polegac na tym ze w mysql beda podane 2 tabele. Jedna do newsow a druga do meczy. I jak zrobic zeby byly wyswietlane w tym skrypcie newsy z tych 2 tabel?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 27.02.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Rozwiń myśl trochę i może poprzyj to mini przykładem bo nie bardzo rozumiem.
Ale jeżeli masz np tabele newsy[news_id, tresc_newsa] i mecze[mecz_id, tresc_meczu] to nie widze problemu. Formułujesz dwa zapytania 'SELECT * FROM newsy' i drugie 'SELECT * FROM mecze' wynik zapytań (przetwarzanie musisz sobie napisać) wrzucasz pod zmienne $newsy i $mecze i możesz dowolnie na nich działać. W razie czego print_r($newsy) pokaże Ci strukturę teblicy newsy. Ten post edytował PawelW 30.04.2007, 20:14:44 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 7.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
rozwijajac chodzi o to ze:
Mam 2 tabele mysql. Jedna mecze a druga news. Chce zeby te 2 tabele (rekordy z tych dwoch tabel) pojawily sie w jednej na stronie w postaci newsow. Jest skrypt newsow i ma sie skladac z dwoch tabel mysql. Chyba dokladniej nie da sie wytluamczyc. mysql_query ( A ) ; mysql_query ( B ) ; Print"newsy z zapytan A i B sortowane by DATA"; A bardziej przykladowo to mam: tabele mysql news. mysql_query(SELECT * From news Order by Data DESC); Druga tabela mecze mysql_query(SELECT * From mecze Where stan='rozegrany Order by Data Desc'); No i teraz newsy ktore beda skladaly sie z tych dwoch zapytac. Ten post edytował Green-sc 30.04.2007, 20:58:59 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
to że masz dwie tabele to już wiemy ale powiedz czy wchodzą ze sobą w jakieś relacje, czy dane z tych dwóch tabel są jakoś ze sobą powiązane? bo jeśli nie, a zależy ci tylko na sklejeniu tych dwóch zapytań w jedno to możesz zrobić to w ten sposób:
Kod mysql_query(SELECT * From news Order by Data DESC UNION SELECT * From mecze Where stan='rozegrany Order by Data Desc');
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 7.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie poprostu trzeba je ze soboa zespoic. Z dwoch tabel ma powstac jedna tyle ze odpowiednio posortowane no i w meczach odpowiednio wytypowane.
A ten twoj kod nie dziala. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
a zapytanie dałeś pomiędzy cudzysłowy? ja tam tylko przerabiałem z tego co ty podawałeś, jeśli działają twoje zapytania to i moje powinno.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 7.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
no moje dzialaja
Kod $wynik = mysql_query("SELECT * FROM news Order by Data DESC UNION SELECT * FROM mecze Where stan='rozegrany' Order by Data Desc"); A i przeczytalem info na temat operatora UNION: Cytat Łączone wyniki muszą składać się z takiej samej liczby kolumn, a poszczególne kolumny muszą być tego samego typu, poza tym konieczne jest, aby występowały one w tej samej kolejności w obu wynikach (listing 4.12). Jezeli tabele sa rozne to nie bedzie chodzic? A i jeszcze przeczytalem ze dziala na wersji 5.0 mysql. Moja wersja to : 3.23.58-max-debug. U ciebie dziala? Zainstalowalem mysql 5 lecz blad nie zniknal. kod wyglada tak:
A blad tak: Kod Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\new\news.php on line 7 A i jeszcze jak wszedlem na phpmyadmina to jest cos takiego: Kod Błąd Dodatkowe możliwości pracy z połączonymi tabelami zostały wyłączone. Aby dowiedzieć się, dlaczego - kliknij tutaj. Jakies pomysly? Ten post edytował Green-sc 30.04.2007, 22:11:51 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze jeśli chcesz mieć bardziej czytelne błędy to stosuj taki zapis:
Po drugie nawet jeśli tabela mecze i tabela newsy zawierają różną ilość kolumn, to i tak klauzulę UNION można wykorzystać. Wystarczy pobierać z obu tabel taką samą ilość kolumn takiego samego typu. Jeśli np. interesuje cię tytuł, treść, autor i data, to użyj:
Ten post edytował Kicok 1.05.2007, 09:40:08 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 0 Dołączył: 7.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ok dziala. Wystarczylo wskazac kolumny z ktorych ma pobierac dane. Widocznie '*' CHodz dopiero jak tabele maja taki sam uklad.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 23:08 |