Hoi allemaal,

Ik ben al een tijdje bezig met het zichtbaar krijgen van de items van de maand. Het is dus de bedoeling dat ik een lijstje krijg met de best bekeken items van de maand, mocht het de eerste van de maand zijn en nog niet genoeg items in de best bekeken hebben dan zou hij naar de vorige maand moeten kijken.

Hieronder heb ik de code staan die ik tot nu toe heb. Sorry dat het er niet meer netjes uitziet, ik heb er al zoveel mee geprobeert dat ik er zelf niet meer uitkom.

De eerste query is om te kijken of er voldoende items al bekeken zijn, mocht dit niet het geval zijn moet hij $maand - 1 doen, dus naar de vorige maand.

<?

$timestamp = strtotime("now");
//$maand = date("m", $timestamp);
$maand = 7;
if ($maand < 10) { $maand = "0$maand"; }

$sqlm = "SELECT distinct id, count(*) as cnt FROM itemcount WHERE date LIKE '%-".$maand."-%' GROUP BY id ORDER BY cnt DESC, id LIMIT 0,$limit";
$resm = mysql_query($sqlm) or die("SELECT Error: ".mysql_error());
$items = mysql_num_rows($resm);
echo $items;
echo " ";
if ($items < 10) { $maan = --$maand; } else { $maan = $maand; }

if ($maan < 10) { $maan = "0$maan"; }

$sqlc = "SELECT distinct id, item, timestamp, count(*) as cnt FROM itemcount WHERE date LIKE '%-".$maan."-%' GROUP BY id ORDER BY cnt DESC, id LIMIT 0,$limit";
$resc = mysql_query($sqlc) or die("SELECT Error: ".mysql_error());
$item = mysql_num_rows($resc);
echo $item;
echo " ";

?>

Ik hoop dat ik het een beetje begrijpend heb kunnen uitleggen.
Alvast bedankt voor jullie tijd en moeite..
Misschien dom van mij gedacht maar zover ik kan zien zou dit goed moeten staan.

<?
CASE
WHEN DAYOFWEEK(CURDATE()) = 1 THEN WEEK(iso_date) = WEEK(DATE_ADD(CURDATE(), INTERVAL -1 WEEK))
ELSE WEEK(iso_date) = WEEK(CURDATE())
END
?>

Hij geeft als error " near 'WEEK)) ELSE WEEK(iso_date) = WEEK(CURDATE()) END " maar wat ik heb begrepen van de mysql site moet dit goed staan.

WEEK WEEKS 5.0.0
Ik gok erop dat je nog niet beschikt over versie 5. In dat geval zul je bij de INTERVAL simpelweg -7 DAY moeten gebruiken. De laatste keer dat ik het controleerde was 7 dagen gelijk aan 1 week... ;)

Updaten naar versie 5 is trouwens ook geen slecht plan, dat is eigenlijk de eerste versie van MySQL die je serieus kunt nemen als DBMS. Al kun je dat met de nodige foute instellingen ook weer om zeep helpen...
hehehe bij de handje.. :P

en versie 5 is niet handig voor mij om te installeren omdat mijn externe server die niet heeft..

Maar ik had dus niet in de gaten dat alleen 5 die week zou pakken.. :) En nu werkt hij perfect.. :D

Bedankt :)

Reageren