Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wybór i wyświetlenie wiadomości spośród kilku tabel
Forum PHP.pl > Forum > Przedszkole
-kosior11-
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']."'";


jaslanin
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.
-kosior11-
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?
d3ut3r
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. }
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.