Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] SELECT MAX dane z różnych rekordów
Forum PHP.pl > Forum > PHP
M@X
Witam.
Poniższe zapytanie pobiera największą wartość pola (wynik) z tabeli WYNIKI. Ma się wyświetlać najwyższy wynik i jego data (tak jak jest w danym rekordzie w bazie). Jednak coś jest nietak i wyświetla date z innego rekordu też najwyższego a przecież w zapytaniu MAX tyczy się tylko kolumny (wynik). Co jest źle w tym kodzie questionmark.gif?

  1. <?php
  2. $max=mysql_query('SELECT MAX(wynik), data FROM wyniki WHERE id_usera='.$player.' GROUP BY id_usera='.$player.'');
  3. while($wmax=mysql_fetch_array($max))
  4. {
  5. echo ''.$wmax[0].' - '.$wmax[1].'';
  6. }
  7. ?>
franki01
  1. <?php
  2. $max=mysql_query('SELECT MAX(`wynik`), `data` FROM `wyniki` WHERE `id_usera`='.$player.' GROUP BY `id_usera`');
  3. $wmax=mysql_fetch_array($max);
  4. echo $wmax[0].' - '.$wmax[1];
  5. ?>


Klauzula GROUP BY ma złą składnię. I jak chcesz wyciągnąć jeden rekord, to po co do tego pętla?

Jak jeszcze będą problemy, użyj mysql_error" title="Zobacz w manualu PHP" target="_manual i zobacz jaki błąd pokaże.
M@X
Niestety dalej wyświetla najwyższy wynik z kolumny 'wynik' ale date z innego rekordu....
Jakieś inne rozwiązania questionmark.gif
zuvik
a może takie zapytanie

$max=mysql_query('SELECT wynik, data FROM wyniki WHERE id_usera='.$player.' AND wynik = (SELECT MAX(wynik) FROM wyniki)');
Kocurro
U mnie działa.


  1. SELECT MAX( "wynik" ) AS "wynik", "data" FROM "wyniki" WHERE "id_usera" = $1 GROUP BY "data";


Pozdr.
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.