Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Problem z zapytaniem
Forum PHP.pl > Forum > Przedszkole
todaro
Mam takie zapytanie:
  1. "SELECT DATEDIFF(NOW(), last_log) AS ile_dni, ranga FROM tabela WHERE (ile_dni=0)"

Zapytanie to nie działa, powodem jest dopisanie przeze mnie fragmentu:
  1. WHERE (ile_dni=0)


Celem zapytania ma być wyświetlenie użytkowników, którzy odwiedzili stronę przez ostatnie 24h.

Być może problem da się rozwiązać w inny sposób. Poniżej zamieszam nieco dłuższy kod, który daje pożądany efekt, lecz wydaje mi się, że ten sposób za bardzo obciąża bazę danych.

  1. <?php
  2. $ilosc='0';
  3.  
  4. $zapytanie = "SELECT DATEDIFF(NOW(), last_log) AS ile_dni, ranga FROM tabela";
  5. $idzapytania = mysql_query($zapytanie);
  6. while ($wiersz = mysql_fetch_row($idzapytania))
  7. {
  8.  
  9. if ($wiersz[0]=='0') { $ilosc=$ilosc+1; }
  10.  
  11. }
  12.  
  13. if ($ilosc>'0') {
  14.  
  15. echo 'Dzisiaj odwiedzili nas: ';
  16.  
  17. $zapytanie = "SELECT username, last_log, DATEDIFF(NOW(), last_log) AS ile_dni FROM tabela ORDER BY last_log DESC";
  18. $idzapytania = mysql_query($zapytanie);
  19. while ($wiersz = mysql_fetch_row($idzapytania))
  20. {
  21.  
  22. if ($wiersz[2]=='0') echo $wiersz[0];
  23.  
  24. }
  25.  
  26. }
  27. ?>
sebekzosw
Spróbuj zmienić
  1. WHERE (ile_dni=0)
na
  1. WHERE ile_dni='0'
nevt
  1. SELECT DATEDIFF(NOW(), last_log) AS ile_dni, ranga FROM tabela WHERE DATEDIFF(NOW(), last_log)=0;

albo
  1. SELECT * FROM (SELECT DATEDIFF(NOW(), last_log) AS ile_dni, ranga FROM tabela) AS tmp WHERE ile_dni=0;

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