Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wartości z tablicy do drugiej tablicy
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Witam,

chciałbym wykonać następujące działanie:
Wykonać trzy zapytania do bazdy danych przy wykorzystaniu pętli while.
Potem dane z wszystkich zapytań podstawić pod nową tablicę i ją posortować wg. jedynego wspólnego parametru (daty dodania $qA_AD, $qB_AD, $qC_AD).

  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. $qA = "<div class=\"item\"><small class=\"pull-right\">" . "$qA_AD" . "</small><p class=\"no-margin\"><i class=\"icon-user\"></i> " . "$qA_AT" . "</a> dodał wydarzenie pt. <a href=\"../wydarzenie.php?id=" . "$qA_ID" . "\">$qA_NM</a></p></div>";
  10. }
  11.  
  12. $qobB = 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");
  13. while($qobB = mysql_fetch_array($qobA))
  14. {
  15. $qB_ID = $qobB['pb_id'];
  16. $qB_NM = $qobB['pb_title'];
  17. $qB_AD = $qobB['pb_addeddata'];
  18. $qB_AT = $qobB['us_name'];
  19.  
  20. $qB = "<div class=\"item\"><small class=\"pull-right\">" . "$qB_AD" . "</small><p class=\"no-margin\"><i class=\"icon-user\"></i> " . "$qB_AT" . "</a> dodał publikację pt. <a href=\"../publikacja.php?id=" . "$qB_ID" . "\">$qA_NM</a></p></div>";
  21. }
  22.  
  23. $qocC = mysql_query("SELECT us_id, us_name, us_login, us_data FROM users ORDER BY us_data DESC LIMIT 10");
  24. while($qocB = mysql_fetch_array($qocA))
  25. {
  26. $qC_ID = $qocB['us_id'];
  27. $qC_NM = $qocB['us_login'];
  28. $qC_AD = $qocB['us_data'];
  29. $qC_AT = $qocB['us_name'];
  30.  
  31. $qC = "<div class=\"item\"><small class=\"pull-right\">" . "$qC_AD" . "</small><p class=\"no-margin\"><font color=\"red\"><i class=\"icon-user\"></i> Dołączył do nas nowy użytkownik: " . "$qC_AT" . "</a> (Login " . "$qC_NM" . ")</font></p></div>";
  32. }




Jak mam przenieść te dane do nowej tablicy która byłaby sortowana po dacie wpisu?

Bardzo proszę o pomoc.
Michael2318
Przed wszystkimi zapytaniami zdefiniuj tablicę:

  1. $final_arr = array();


potem w każdej pętli while, każdy rekord przypisuj do tej tablicy:

  1. $final_arr[] = $row['jakis_rekord'];


i tak przez wszystkie zapytania. Na końcu pozostaje sortowanie, możesz wykorzystać funkcję usort.
d0m1n1k_
Przerobiłem zgodnie z wytycznymi i nie działało w ogóle.
Potem przy pomocy manuala php (którego nadal jeszcze nie ogarniam) szukałem natchnienia.
Obecnie kod jest następujący:

  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. $qA = "<!--" ."$qA_AD" . "--><div class=\"item\"><small class=\"pull-right\">" . "$qA_AD" . "</small><p class=\"no-margin\"><i class=\"icon-user\"></i> " . "$qA_AT" . "</a> dodał wydarzenie pt. <a href=\"../wydarzenie.php?id=" . "$qA_ID" . "\">$qA_NM</a></p></div>";
  10.  
  11. $final_arr[] = array('dataa' => $qA);
  12. }
  13.  
  14. $qoaB = 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");
  15. while($qobB = mysql_fetch_array($qoaB))
  16. {
  17. $qB_ID = $qobB['pb_id'];
  18. $qB_NM = $qobB['pb_title'];
  19. $qB_AD = $qobB['pb_addeddata'];
  20. $qB_AT = $qobB['us_name'];
  21.  
  22. $qB = "<!--" ."$qB_AD" . "--><div class=\"item\"><small class=\"pull-right\">" . "$qB_AD" . "</small><p class=\"no-margin\"><i class=\"icon-user\"></i> " . "$qB_AT" . "</a> dodał publikację pt. <a href=\"../publikacja.php?id=" . "$qB_ID" . "\">$qA_NM</a></p></div>";
  23.  
  24. $final_arr[] = array('dataa' => $qB);
  25. }
  26.  
  27. $qocC = mysql_query("SELECT us_id, us_name, us_login, us_data FROM users ORDER BY us_data DESC LIMIT 10");
  28. while($qocB = mysql_fetch_array($qocC))
  29. {
  30. $qC_ID = $qocB['us_id'];
  31. $qC_NM = $qocB['us_login'];
  32. $qC_AD = $qocB['us_data'];
  33. $qC_AT = $qocB['us_name'];
  34.  
  35. $qC = "<!--" ."$qC_AD" . "--><div class=\"item\"><small class=\"pull-right\">" . "$qC_AD" . "</small><p class=\"no-margin\"><font color=\"red\"><i class=\"icon-user\"></i> Dołączył do nas nowy użytkownik: " . "$qC_AT" . "</a> (Login " . "$qC_NM" . ")</font></p></div>";
  36.  
  37. $final_arr[] = array('dataa' => $qC);
  38. }
  39.  
  40. foreach ($final_arr as $key => $row)
  41. {
  42. $dattum[$key] = $row['dataa'];
  43.  
  44. $wynik = sort($dattum);
  45. echo "$wynik";
  46. echo "<br />";
  47. }


Wszystko byłoby ok, bo CMD_SHOW_LOG nie wyświetla błędu - ba, nawet wyświetlana jest odpowiednia ilość rekorów, ale...
Zamiast tego co bym chciał osiągnąć, wynik wygląda następująco:

  1. 1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />
Turson
  1. $dattum[$key] = $row['dataa'];
  2.  
  3. $wynik = sort($dattum);
  4. echo "$wynik";

Jeżeli $wynik jest posortowaną tablicą to dlaczego ot tak dajesz echo $wynik bez podanego indeksu questionmark.gif
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.