Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wybór i wyświetlenie wiadomości spośród kilku tabel
--kosior11--
post
Post #1





Goście







Witam!

Mam dwie tabele artykuly i wiadomosci. Na stronie głównej w pliku index.php mam zapetlone wyswietlanie wiadomosci z obu tabel

  1. $query = "(SELECT tytul,autor,data,tresc,kategoria,zdjecie AS wiadomosci FROM wiadomosci) UNION (SELECT tytul,autor,data,tresc,kategoria,zdjecie AS artykuly FROM artykuly) ORDER BY data DESC LIMIT ".($start).",".$na_stronie."";


i chciałbym żeby w drugim pliku, article.php wyświetlana była wybrana wiadomość, nie wiem jak sformułowac zapytanie żeby wiadomość była wyświetlana zgodnie z wybranym id?

Próbowałem coś takiego ale nie działa:

  1. $query = "(SELECT tytul,autor,data,tresc,kategoria,zdjecie AS wiadomosci FROM wiadomosci) UNION (SELECT tytul,autor,data,tresc,kategoria,zdjecie AS artykuly FROM artykuly) where id='".(int)$_GET['id']."'";


Go to the top of the page
+Quote Post
jaslanin
post
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


1.

Kod
where id='".(int)$_GET['id']."'";


z zapytania wynika że chcesz wyszukiwać po kolumnie id na rezultacie unii zapytań, żeby to zrobić musisz zwracać w poszczególnych zapytaniach unii id

Lub jeżeli to spełnia Twoje oczekiwania warunek where przenieść do obu zapytań unii

obecnie rezultatem unii są kolumny tytul,autor,data,tresc,kategoria,zdjecie, więc Twoje zapytanie where nie ma kolumny na której ma szukać

2. Być może się mylę, ale takie zapytania SQL rodzą wątpliwości czy baza danych jest prawidłowo zaprojektowana. Dobrze by było gdybyś pomyślał nad tym.


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
--kosior11--
post
Post #3





Goście







Mój błąd, bo myśle że union w zapytaniu w tym przypadku nie jest dobrym rozwiązaniem.

Wytłumacze troche bardziej ogólnikowo:

Mam dwie tabele: artykuly i wiadomosci, dodajac poszczególne newsy do tabel każdy otrzymuje id, i tak dodajac pierwszy news do artykuly otrzymuje on id=1, podobnie jest z wiadomosciami, dodajac wiadomosc pierwszą, otrzymuje ona id=1.

Na stronie głownej za pomocą UNION wyswietlam wszystkie newsy. i teraz mam następujący problem, nie wiem jak sformułowac zapytanie w skrypcie który będzie wyświetlał poszczególny kliknięty news? wyswietlanie z jednej tabeli nie stanowi problemu, ale jak powinno to wyglądać w momencie gdy kliknięta wiadomosć raz będzie pochodziła z tabeli artykuły a raz z wiadomosci?
Go to the top of the page
+Quote Post
d3ut3r
post
Post #4





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Moim zdaniem nie powinno to tak wyglądać smile.gif generalnie myślę, że to bardzo kiepski pomysł. Lepiej zrobić osobne linki do wiadomości i osobne do artykułów. ew w linku przemycaj dodatkową zmienną np typ wtedy link mógłby wyglądać tak: http://serwer.com/wyswietl.php?id=10&typ=1
w pliku wyswietl.php

  1. if ( $_GET['typ']==1){
  2.  
  3. //select z artykuły
  4.  
  5. } elseif ($_GET['typ']==2){
  6.  
  7. //select z wiadomości
  8.  
  9. }


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 03:28