Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zapytanie do poprawienia
Forum PHP.pl > Forum > Przedszkole
Gray
Poniższe zapytanie działa poprawnie i jednocześnie niepoprawnie, wyświetla to co chcę ale tylko jedną linię czyli to co jest w echo jednokrotnie, ja chciałbym aby wyświetliło wszystkich userów.

  1. $objects = mysql_query("SELECT `owner`, COUNT(owner) AS `num` FROM `img` GROUP BY `owner` ORDER BY `num` DESC");
  2.  
  3. while($ile = mysql_fetch_array($objects)) {
  4.  
  5. $sql = mysql_query("SELECT `user` FROM `users` WHERE `id` = ".$ile['owner']."");
  6.  
  7. while($row = mysql_fetch_array($sql)) {
  8.  
  9. echo "<br>Ranking:".$ile['num']." przez ".$row['user']."<br>";
  10.  
  11. }
  12.  
  13. }
nospor
Poczytaj o LEFT JOIN. Takie rzeczy robi sie jednym zapytaniem a nie zapetlonymi zapytaniami jak u ciebie
Gray
Właśnie od rana się z tym męczę, miałem już inny temat jednak zbyt zawile to tam wyjaśniłem a międzyczasie stworzyłem to co podałem powyżej, błądzę jak dziecko we mgle i byłbym bardzo wdzięczy za pomoc w poprawieniu tego co stworzyłem czy też przerobieniu na jedno zapytanie.
com
Zacznijmy od tego ze nie zakładaj 10 tematów z tym samym
Gray
ten tutaj to jest drugi a nie 10 temat i w zasadzie jest on z czymś innym, poprzedni wyedytowałem nazwałem "do skasowania" i czeka na moda aby go skasował. W tym temacie tutaj podałem gotowe zapytanie i oczekiwałem poprawienia błędów. W tamtym temacie oczekiwałem propozycji rozwiązania zagadnienia.... "subtelna" różnica.

//EDIT:
Poradziłem sobie, częściowo dzięki Tobie @nospor - dzięki. Rozwiązanie, które działa ale fajnie by było, gdyby ktoś je sprawdził:

  1. $objects = mysql_query("SELECT img.owner, users.user, COUNT(owner) AS num
  2. FROM img
  3. LEFT JOIN users
  4. ON img.owner=users.id
  5. GROUP BY owner ORDER BY num DESC");
  6.  
  7. while($ile = mysql_fetch_array($objects)) {
  8.  
  9. echo "<br>Ranking:".$ile['num']." przez ".$ile['user']."<br>";
  10.  
  11. }
com
no własnie nie, bo cały czas wiąże się z tym samym i nawet jak uzyskałeś już jakieś rozwiązanie to nadal dotyczy ono tego samego. Tam wtedy wiadomo, że nie szukasz go ale opisujesz jaki masz problem i my staramy Ci się pomóc, a kiedyś ktoś o podobnym problemie będzie mógł na tym również bazować. Ponadto zapoznaj się regulaminem forum, bo tu tematów nie usuwamy tak samo jak nie są zamykane, moderator jednie zamyka tematy, które sa np przepięte a ktoś pyta o coś co już zostało rozwiązane 100 razy.

Brawo, nauczyłeś się nowej rzeczy czyli złączeń i na tym to polega, że my tu staramy się podpowiadać ale nie dawać całkowitego gotowca, dzięki temu rozwijasz się i mniej popełniasz błędów w przyszłości smile.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.