Autor Zpráva
table
Profil *
Zdravím dámy a pánové.
Potřeboval bych poradit.
Takto vypisuji nové řádky jen zapsané dnes:

<?php
$datum=date("dmY");
$result = mysql_query("SELECT * FROM `sportsdb_wins` WHERE winconf='$confid' AND DATE_FORMAT(datum,'%d%m%Y')='$datum'");
echo "Dnes se odehrálo " . mysql_num_rows($result) . " zápasů\n";

?>
Jak mám vypsat řádky zapsané za poslední týden. Týden znamená od pondělí do neděle.
V db mám zapsán datum typu datetime (např.2013-07-06 16:06:52), proto ho musím jak je vidět výše v kodu převádět.


Předem děkuji za radu
juriad
Profil
Nemusíš převádět, vše lze řešit přímo v DB:
SELECT COUNT(*) FROM `sportsdb_wins` WHERE DATE(datum) = CURDATE() AND …

Obdobně záznamy za tento týden:
SELECT COUNT(*) FROM `sportsdb_wins` WHERE WEEKOFYEAR(datum) = WEEKOFYEAR(NOW()) AND …;

Projdi si funkce pro práci s datumy a časy: http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html

A nepoužívej pro počítání funkci mysql_num_rows, pokud nepotřebuješ data všech řádků; použij v DB funkci count. Je to méně náročné na výkon, zbytečně netaháš z databáze data, která nepoužiješ.
table
Profil *
Velice děkuji, prostuduji si to.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0