Tabellen samenvoegen
SELECT
p1.naam,
p1.url,
p1.id,
COUNT(pk.datumtijd)
FROM
partnerKliks AS pk
INNER JOIN
partners AS p1
ON
pk.url_id = p1.id
WHERE
MONTH(pk.datumtijd ) = MONTH( CURDATE( ) )
AND
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
AND
p1.id = ".$_GET['id']."
GROUP BY p1.id
Volgens mij hadden we deze versie al eerder.
Is het niet zo dat je helemaal geen $_GET moet gebruiken?
Want hij laat nu "vijftigplus" zien omdat dat het id 9 heeft en in de browser staat ook id=9 van de partnerpagina.
Eigenlijk moet er gewoon een top10 komen te staan met gegevens uit twee tabellen. De best bezocht linken zie je dan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT
p1.naam,
p1.url,
p1.id,
COUNT(pk.datumtijd) AS aantal_clicks
FROM
partnerKliks AS pk
INNER JOIN
partners AS p1
ON
pk.url_id = p1.id
WHERE
MONTH(pk.datumtijd ) = MONTH( CURDATE( ) )
AND
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p1.id
ORDER BY aantal_clicks DESC
LIMIT 0,10
p1.naam,
p1.url,
p1.id,
COUNT(pk.datumtijd) AS aantal_clicks
FROM
partnerKliks AS pk
INNER JOIN
partners AS p1
ON
pk.url_id = p1.id
WHERE
MONTH(pk.datumtijd ) = MONTH( CURDATE( ) )
AND
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p1.id
ORDER BY aantal_clicks DESC
LIMIT 0,10
De ORDER BY weet ik niet of dat werkt, zou je moeten proberen. Ik heb ook een LIMIT erop gezet, zodat die (als ORDER BY wel werkt) alleen de hoogste 10 selecteerd.
Verder heb ik inderdaad die $_GET['waarde'] eruit gehaald, omdat dat niet nodig is.
Dat je er nog geen 10 ziet komt omdat er nog niet op 10 linken is geklikt.
Alleen laat hij het aantal kliks erachter nog niet zien.
http://www.kijk-vergelijk.nl/index2.php?id=9
En het weergeven van het aantal doe je door:
$rowKlik['aantal_clicks'] te gebruiken nu he..
Elsy schreef op 18.10.2006 12:29:
aantal_clicks had ik al gewijzigd
Ik doe er even een screenshot bij misschien helpt dat?
Ik doe er even een screenshot bij misschien helpt dat?
Dat helpt, dan kan ik zien dat de query an sich wel werkt, hij sorteert de resultaten zoals blijkt wel prima, dus dat is 1 deel van het probleem. kan je de code van de while lus eens posten, ik ga ondertussen naar huis, en zal dan eens kijken of daar wat in moet veranderen :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
//Laat de 10 best bezochte partners zien van deze maand
$queryKliks = "
SELECT
p1.id,
p1.naam,
p1.url,
COUNT(pk.datumtijd) AS aantal_clicks
FROM
partnerKliks AS pk
INNER JOIN
partners AS p1
ON
pk.url_id = p1.id
WHERE
MONTH(pk.datumtijd ) = MONTH( CURDATE( ) )
AND
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p1.id
ORDER BY aantal_clicks DESC
LIMIT 0,10";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKliks = mysql_fetch_assoc ($resultKliks)) {
echo '<td align="left" width="25%">';
echo $teller . '.<a href="tussenpagina.php?id='. $rowKliks['id'].'" target="_blank">'.$rowKliks['naam'] . '</a></td>';
echo '<td class="kliks10" width="25%">['.$rowKlik['aantal_clicks'].']</td>' ;
$teller++;
$counter++;
if($counter==$kolommen)
{
echo '</td></tr><tr>';
$counter = 0;
}
}
echo '</td></tr></table>'.PHP_EOL;
echo '</td>';
echo '</tr></table></div>';
//einde top 10
?>
//Laat de 10 best bezochte partners zien van deze maand
$queryKliks = "
SELECT
p1.id,
p1.naam,
p1.url,
COUNT(pk.datumtijd) AS aantal_clicks
FROM
partnerKliks AS pk
INNER JOIN
partners AS p1
ON
pk.url_id = p1.id
WHERE
MONTH(pk.datumtijd ) = MONTH( CURDATE( ) )
AND
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p1.id
ORDER BY aantal_clicks DESC
LIMIT 0,10";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKliks = mysql_fetch_assoc ($resultKliks)) {
echo '<td align="left" width="25%">';
echo $teller . '.<a href="tussenpagina.php?id='. $rowKliks['id'].'" target="_blank">'.$rowKliks['naam'] . '</a></td>';
echo '<td class="kliks10" width="25%">['.$rowKlik['aantal_clicks'].']</td>' ;
$teller++;
$counter++;
if($counter==$kolommen)
{
echo '</td></tr><tr>';
$counter = 0;
}
}
echo '</td></tr></table>'.PHP_EOL;
echo '</td>';
echo '</tr></table></div>';
//einde top 10
?>
Ik denk dat je gaat zeggen dat het in dit stukje zit met assoc.
Nee, verkeert gedacht, ik had het in object gewijzigd maar dan krijg ik een foutmelding dat dat niet gaat.
Rustig afwachten dus tot je thuis bent........
while ($rowKliks = mysql_fetch_assoc ($resultKliks)) {
Je ziet dat je de gegevens in $rowKliks zet, maar later probeer je aantal_clicks te echo'en met $rowKlik , dus zonder s...
Dit zou het dus moeten zijn:
Code (php)
1
2
3
2
3
<?php
echo '<td class="kliks10" width="25%">['.$rowKliks['aantal_clicks'].']</td>' ;
?>
echo '<td class="kliks10" width="25%">['.$rowKliks['aantal_clicks'].']</td>' ;
?>
Edit:
Ik ben intussen dus thuisgekomen :)
Ik ben intussen dus thuisgekomen :)
Edit:
NR 2:
Ik hoop dat dat het probleem oplost, want de query lijkt me helemaal goed te gaan, wat het grootste deel van het probleem was :)
NR 2:
Ik hoop dat dat het probleem oplost, want de query lijkt me helemaal goed te gaan, wat het grootste deel van het probleem was :)
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Knap dat je dat weer gezien hebt, ik had er al 234 keer overheen gelezen!
Volgens mij werkt het nu.
Hopelijk werkt alles nu goed dus ook de kliks in de info van de linkpartners maar dat kan zich alleen uitwijzen als we de volgende maand krijgen.
Robert, bedankt, je hebt het weer voor elkaar gekregen. Ik vind dit onderdeel erg ingewikkeld van tabellen samenvoegen.
http://www.kijk-vergelijk.nl/index2.php?id=9
EDIT: en dat in twee topic kantjes!
Het leuke van onze hersenen is dat ze zelf al aanvullen wat ze denken/ verwachten dat er komt.
Omdat jij er al zolang mee bezig bent geweest, zie je die s wel gewoon staan, terwijl die er niet staat...
Het samenvoegen van tabellen vind ik ook altijd nog lastig, maar met een beetje proberen kom ik er vaak nog wel uit ;)
Edit:
Inderdaad, deze keer is het met relatief weinig posts opgelost. Dat komt natuurlijk omdat je meer snapt van de oplossingen die we aandragen, omdat je kennis veel vooruit is gegaan sinds de 1e paar topics :)
Inderdaad, deze keer is het met relatief weinig posts opgelost. Dat komt natuurlijk omdat je meer snapt van de oplossingen die we aandragen, omdat je kennis veel vooruit is gegaan sinds de 1e paar topics :)
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman