Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Kilka zapytań jedno sortowanie
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Witam,
czy jest możliwe uzyskanie następującego efektu:

sortuj_wedlug_daty(questionSQL_1 + questionSQL_2 + questionSQL_3 + questionSQL_4)

Mówiąc wprost, chciałbym wyciągąć po 10 najnowszych informacji z czterech tabel i posortować je tak aby informacje były posortowane bez zwracania uwagi na tabele z której pochodzą dane.

Obecnie mam następujący schemat:

  1. $qoaA = mysql_query("SELECT events.ev_id, events.ev_name, events.ev_added, events.ev_author, users.us_id, users.us_name FROM events LEFT JOIN users ON events.ev_author = users.us_id ORDER BY events.ev_added DESC LIMIT 10");
  2. while($qoaB = mysql_fetch_array($qoaA))
  3. {
  4. $qA_ID = $qoaB['ev_id'];
  5. $qA_NM = $qoaB['ev_name'];
  6. $qA_AD = $qoaB['ev_added'];
  7. $qA_AT = $qoaB['us_name'];
  8.  
  9. echo "<div class=\"item\">";
  10. echo "<small class=\"pull-right\">" . "$qA_AD" . "</small>";
  11. echo "<p class=\"no-margin\"><i class=\"icon-user\"></i> " . "$qA_AT" . "</a> dodał wydarzenie pt. ";
  12. echo "<a href=\"../wydarzenie.php?id=" . "$qA_ID" . "\">$qA_NM</a></p></div>";
  13. }
  14.  
  15. $qobA = mysql_query("SELECT publications.pb_id, publications.pb_title, publications.pb_addeddata, publications.pb_author, users.us_id, users.us_name FROM publications LEFT JOIN users ON publications.pb_author = users.us_id ORDER BY publications.pb_addeddata DESC LIMIT 10");
  16. while($qobB = mysql_fetch_array($qobA))
  17. {
  18. $qA_ID = $qobB['pb_id'];
  19. $qA_NM = $qobB['pb_title'];
  20. $qA_AD = $qobB['pb_addeddata'];
  21. $qA_AT = $qobB['pb_author'];
  22.  
  23. echo "<div class=\"item\">";
  24. echo "<small class=\"pull-right\">" . "$qA_AD" . "</small>";
  25. echo "<p class=\"no-margin\"><i class=\"icon-user\"></i> " . "$qA_AT" . "</a> dodał publikację pt. ";
  26. echo "<a href=\"../publikacja.php?id=" . "$qA_ID" . "\">$qA_NM</a></p></div>";
  27. }
  28.  
  29. $qocA = mysql_query("SELECT us_id, us_name, us_login, us_data FROM users ORDER BY us_data DESC LIMIT 10");
  30. while($qocB = mysql_fetch_array($qocA))
  31. {
  32. $qA_ID = $qocB['us_id'];
  33. $qA_NM = $qocB['us_login'];
  34. $qA_AD = $qocB['us_data'];
  35. $qA_AT = $qocB['us_name'];
  36.  
  37. echo "<div class=\"item\">";
  38. echo "<small class=\"pull-right\">" . "$qA_AD" . "</small>";
  39. echo "<p class=\"no-margin\"><font color=\"red\"><i class=\"icon-user\"></i> Dołączył do nas nowy użytkownik: " . "$qA_AT" . "</a> (Login " . "$qA_NM" . ")</font></p></div>";
  40. }
  41.  


Działa ale nie jest to w 100% to czego potrzebuję.
Z góry dziękuję za pomoc lub wskazanie drogi do celu :-)
nospor
Manual mysql -> UNION
d0m1n1k_
Nad Union myślałem i próbowałem, ale niestety nie wchodzi w grę.

MySQL ERROR: #1222 - The used SELECT statements have a different number of columns

Tu sprawa rozbija się o kilka różnych tabel.
Przy tabelach A i B które wyświetlą identyczną ilość kolumn - sprawa bezproblemowa.
Przy dołożeniu tabeli użytkowników mamy mniejszą liczbę kolumn i już jest dupa #1222.

Na domiar złego, jak widać po kodzie chciałbym aby każda tabela miała inny typ wyświetlania.
Czy da się powyższe problemy przejść?
nospor
Liczba kolumn to nie problem. I tak z palucha je wypisujesz, wiec jak ci brakuje to dopisujesz bzdury, np:
  1. SELECT pole1,polle2,pole3 FROM .....
  2. UNION
  3. SELECT pole1,pole2, 'zapchajdziura' FROM....

smile.gif
d0m1n1k_
Super, a kwestia różnych szablonów dla różnych tabel?

Albo inaczej spytam.
W jaki sposób mogę oznaczyć tabele (czy mogę jakoś opisać tabelę dodatkową kolumną)?
mmmmmmm
  1. SELECT pole1, pole2, ...,polen, 'nazwa_tabeli_1' tabela FROM nazwa_tabeli_1
  2. UNION
  3. SELECT pole1, pole2, ...,polen, 'nazwa_tabeli_2' tabela FROM nazwa_tabeli_2
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.