Tabel1: Hierin staan de namen en de url's van de linken. Ik heb nodig uit deze tabel (partners) de "naam" en de "url".
Tabel2: Hierin zitten de kliks van die linken. Ik heb nodig uit deze tabel (partnerKliks) de "datumtijd" en de "url_id".
Bij iedere klik op een link wordt hier een nieuwe rij aangemaakt. Als je de datumtijd optelt van de bijgehorende url_id dan weet je hoevaak er op die bewuste link geklikt is.
Ik had al iets geprobeerd maar het werkt niet omdat ik niet goed met dit soort codes uit de voeten kan.
Ik wil graag dat je de best bezochte linkpartners in de top 10 kunt zien van deze maand.
<?php
//Laat de 10 best bezochte partners zien van deze maand
$queryKlik = "
SELECT p.naam, p.id, COUNT(datumtijd) as maandtotaal
FROM partners AS p, partnerKliks
WHERE MONTH(datumtijd) = MONTH(CURDATE()) AND YEAR(datumtijd) = YEAR(CURDATE()) AND url_id = ". $_GET['id']."
ORDER BY maandtotaal
DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 partners niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKlik = mysql_fetch_assoc ($resultKlik)) {
echo '<td align="left" width="25%">';
echo $teller . '.<a href="tussenpagina.php?id='. $rowKlik['id'].'" target="_blank">'.$rowKlik['naam'] . '</a></td>';
echo '<td class="kliks10" width="25%">['.$rowKlik['maandtotaal'].']</td>' ;
$teller++;
?>
<?
$queryKlik = "
SELECT
p.naam AS naam,
p.id AS id,
COUNT(partnerKliks.datumtijd) as maandtotaal
FROM
partners AS p,
partnerKliks
WHERE
MONTH(partnerKliks.datumtijd) = MONTH(CURDATE())
AND
YEAR(partnerKliks.datumtijd) = YEAR(CURDATE())
AND
p.url_id = ". $_GET['id']."
ORDER BY
maandtotaal
DESC LIMIT 0,10";
?>
Benoem wel overal de tabel waar de gegevens uit moeten komen.
Twijfel: Ik vraag me af of de COUNT() wel gaat werken/is toegestaan. Het kan zijn dat je dit in een subquery moet zetten. Je zou het eigenlijk in PostgreSQL of een andere (betere) database dan MySQL moeten proberen. MySQL slikt het wel, ik weet alleen niet of de gegevens ook kloppen. MySQL heeft problemen met GROUP BY, die o.a. bij COUNT() hoort.
?
Onbekende gebruiker
17-10-2006 16:04
@Frank
Ik kreeg geen mailtje van je bericht vandaar dat ik wat later reageer.
Van tabellen samenvoegen snap ik echt niet veel, zit erg ingewikkeld in elkaar.
En wat je bij "twijfel" hebt neergezet is helemaal abracadabra voor me.
Helaas werkt de onderstaande query niet.
De foutmelding is dat hij de database niet kan weergeven.
<?php
//Laat de 10 best bezochte partners zien van deze maand
$queryKlik = "
SELECT
p.naam AS naam,
p.id AS id,
COUNT(partnerKliks.datumtijd) as maandtotaal
FROM
partners AS p,
partnerKliks
WHERE
MONTH(partnerKliks.datumtijd) = MONTH(CURDATE())
AND
YEAR(partnerKliks.datumtijd) = YEAR(CURDATE())
AND
p.url_id = ". $_GET['id']."
ORDER BY
maandtotaal
DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 partners niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKlik = mysql_fetch_assoc ($resultKlik)) {
echo '<td align="left" width="25%">';
echo $teller . '.<a href="tussenpagina.php?id='. $rowKlik['id'].'" target="_blank">'.$rowKlik['naam'] . '</a></td>';
echo '<td class="kliks10" width="25%">['.$rowKlik['maandtotaal'].']</td>' ;
$teller++;
?>
<?php
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 partners niet weergeven, probeer het later opnieuw.");
?>
mag (tijdelijk) worden:
<?php
$resultKlik = mysql_query($queryKlik) or die (mysql_error());
?>