Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych z kilku tabel i wyświetlanie ich w odrębny sposób
Forum PHP.pl > Forum > PHP
kosior11
Witam!
Wiem że można pobierać dane z kilku tabel i wyświetlenie ich w jednej pętli np sortując według daty ich dodania, ale najbardziej mnie interesuje czy można uzależnić sposób w jaki dane będą wyświetlone w zależności od tabeli z jakiej pochodzą.

podam przykład:

Mam trzy tabele (wiadomości, artykuły, galerie, ) i chciałbym, żeby informacje z wiadomości wyświetlały się tak aby miniaturka zdjęcia była po lewej stronie introtekstu, w artykułach chciałbym aby miniatura była po prawej stronie, a w galerii żeby było samo zdjęcie. i to wszystko w jednej pętli. Czy jest to możliwe?
Majkelo23
Nie rozumiem co to za problem.

  1. while($row = mysql_fetch_assoc($result))
  2. {
  3. $body_aktualnosci .= 'TUTAJ_TABELKA W HTMLU';
  4. $body_galerie .= 'TUTAJ_TABELKA_W_HTMLU';
  5. $body_wiadomosci .= 'TUTAJ TABELKA W HTMLU';
  6. }


I bawisz się po prostu w tabelki, czy div;y ustawiając poszczególne wartości w miejscach odpowiadających Twoim potrzebom. O to chodziło?
kosior11
tak, o to chodziło ale jest jeszcze jedno ale w jaki sposób zrobić z tego pętle?

mam taki kod:

  1. while ($row = mysql_fetch_array($result))
  2. {
  3. $body .= '
  4. <li>
  5. <a href="look.php?id='.$row[0].'">'.$row[0].' </a><img class="images" src="photos/'.$row[5].'" ></br>'.$row[2].' , '.$row[1].'</br><p>'.$row[3].'</p>
  6. </li>';
  7. } echo '<ul>'.$body.'</ul>';


Jak by to wyglądało z trzema rodzajami wyświetleń?
Uriziel01
Oczywiście, możesz na przykład użyć konstrukcji AS w zapytaniu a nastepnie sprawdzać zawartość zwróconych pól:
  1. users.name AS user_name,
  2. categories.name AS category_name
  3. products.name AS product_name

Potem tylko sprawdzasz które pole masz wypełnione i wiesz skąd pochodzi dany wiersz smile.gif

  1. if (isset($row['user_name']) AND !empty($row['user_name'])) //wiersz pochodzi z tabeli users
  2. {
  3. $html .= '';
  4. }
  5. else if(isset($row['category_name']) AND !empty($row['category_name'])) //wiersz pochodzi z tabeli categories
  6. {
  7. $html .= '';
  8. }
kosior11
Dzięki za odpowiedz, wiem mniej więcej o co chodzi ale mam problem z zastosowaniem, mianowicie wklejajac taki kod, wszystkie rekordy znikają:

  1. $query = "(SELECT tytul,autor,data,tresc,zdjecie FROM wiadomosci AS wiadomosci ) UNION (SELECT tytul,autor,data,tresc,zdjecie FROM artykuly AS artykuly) ORDER BY data DESC";
  2. $result = mysql_query ($query);
  3. if (isset($row['wiadomosci']) AND !empty($row['wiadomosci'])) //wiersz pochodzi z tabeli wiadomosci
  4. {
  5. $body .= '<li>
  6. <a href="look.php?id='.$row[0].'">'.$row[0].' </a></br>'.$row[2].' , '.$row[1].'</br><p>'.$row[3].'</p><img class="images" src="photos/'.$row[4].'" >
  7. </li>';
  8. }
  9. else if(isset($row['artykuly']) AND !empty($row['artykuly'])) //wiersz pochodzi z tabeli artykuly
  10. {
  11. $body .= '<li>
  12. <a href="look.php?id='.$row[0].'">'.$row[0].' </a><img class="images" src="photos/'.$row[4].'" ></br>'.$row[2].' , '.$row[1].'</br><p>'.$row[3].'</p>
  13. </li>';
  14. }echo '<ul>'.$body.'</ul>';
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.