Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie nazwy z rekordu
Forum PHP.pl > Forum > Bazy danych > MySQL
djgarsi
Witam. Mam skrypt pobierający z bazy maksymalną liczbe pobrań spośród plików. Teraz chciałbym otrzymac nazwę (name) tegoż pliku.smile.gif

Oto mój dotychczasowy skrypt:
  1. <?
  2. include('db_connect.php');
  3. $zapytanie = mysql_query("SELECT MAX(pobran) AS pobran FROM file ORDER BY id DESC LIMIT 1");
  4. $rekord = mysql_fetch_array($zapytanie);
  5. $last_pobran = $rekord['pobran'];
  6. echo $last_pobran;
  7. ?>


Proszę o pomoc.smile.gif
Mchl
Kod
SELECT f.id FROM file AS f CROSS JOIN (SELECT MAX(pobran) AS pobran FROM file) AS sq USING (pobran)
djgarsi
Podany kod zwrócił mi ID pliku o najwyższej liczbie pobrań.smile.gif
Może cos trzeba zmienić??smile.gif

Kod
SELECT f.name FROM file AS f CROSS JOIN (SELECT MAX(pobran) AS pobran FROM file) AS sq USING (pobran)


Taki kod działa.smile.gif tylko jak to wyświetlić??smile.gif
ActivePlayer
eeee. chyba cos pod gore panowie lecicie.
  1. SELECT * FROM file ORDER BY pobran DESC LIMIT 1
Mchl
Po co iść na łatwiznę tongue.gif
djgarsi
Cytat(ActivePlayer @ 22.12.2009, 20:36:51 ) *
eeee. chyba cos pod gore panowie lecicie.
  1. SELECT * FROM file ORDER BY pobran DESC LIMIT 1



Oki.smile.gif szybsza metoda.smile.gif Teraz jak to wyświetlić??smile.gif
  1. <?
  2. include('db_connect.php');
  3. $zapytanie = mysql_query("SELECT name FROM file ORDER BY pobran DESC LIMIT 1");
  4. $rekord = mysql_fetch_array($zapytanie);
  5. $last_name = $rekord['name'];
  6. echo $last_name;
  7. ?>


to nie działa.sad.gif
Wicepsik
  1. print_r($rekord);


zobacz co jest w tablicy smile.gif
djgarsi
  1. <?
  2. include('db_connect.php');
  3. $zapytanie = mysql_query("SELECT name FROM file ORDER BY pobran DESC LIMIT 1");
  4. $rekord = mysql_fetch_array($zapytanie);
  5. $last_name = $rekord['name'];
  6. print_r($rekord);
  7. ?>



Kod nie działa. Wyświetla że w 3 i 4 linii sa błędy.sad.gif
Mchl
No to standardowo musimy się dowiedzieć jakie to błędy:
  1. $zapytanie = mysql_query("SELECT name FROM file ORDER BY pobran DESC LIMIT 1") or die(mysql_error());
mawwro
  1. SELECT name FROM file ORDER BY pobran DESC LIMIT 1


To zapytanie będzie ok. jedynie kiedy będzie jeden plik który będzie miał największą liczbę pobrań. Jeśli będą 2 lub więcej plików z taka sama liczba pobrań to zawróci nazwę tylko jednego z nich. Prawdopodobnie tego który będzie pierwszy ze względu na sortowanie alfabetyczne nazwy, ale to zależy od ustawień serwera.

  1. SELECT name FROM files WHERE pobran = (SELECT max(pobran) FROM files)


To zapytanie zwróci wszystkie nazwy plików które miały max liczbę pobrań. Później może wybrać z tego sobie jedna nazwę ze względu na jakieś inne kryterium.

Spróbuj

  1. include('db_connect.php');
  2. $results=mysql_query($zapytanie);
  3. while ($row = mysql_fetch_row($results))
  4. {
  5. echo $row[0];
  6. }


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.