Laat maar 4 linken zien ipv alle linken
Hoe kan dit?
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
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
<?php
$queryKliks = "
SELECT
p.partner_id,
p.partner_naam,
p.partner_url,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
klikspartners AS pk
INNER JOIN
partners AS p
ON
pk.partner_id = p.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p.partner_id
ORDER BY RAND()";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
while ($rowKliks = mysql_fetch_object($resultKliks))
{
echo '<a href="partneruit.php?partner_id='. $rowKliks->partner_id.'" title="'. $rowKliks->partner_naam.'" target="_blank">-'.$rowKliks->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
$queryKliks = "
SELECT
p.partner_id,
p.partner_naam,
p.partner_url,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
klikspartners AS pk
INNER JOIN
partners AS p
ON
pk.partner_id = p.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p.partner_id
ORDER BY RAND()";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
while ($rowKliks = mysql_fetch_object($resultKliks))
{
echo '<a href="partneruit.php?partner_id='. $rowKliks->partner_id.'" title="'. $rowKliks->partner_naam.'" target="_blank">-'.$rowKliks->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
Edit:
Je zou ook nog even de WHERE condition weg kunnen halen, om te kijken of dat iets uitmaakt.
Je zou ook nog even de WHERE condition weg kunnen halen, om te kijken of dat iets uitmaakt.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Waarschijnlijk kan ik dus beter een andere query maken om de linkpartners te tonen. Ik zal het eens proberen.
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
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
<?php
//Kliks van partners
$queryKliks = "
SELECT
p.partner_id,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
klikspartners AS pk
INNER JOIN
partners AS p
ON
pk.partner_id = p.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p.partner_id
ORDER BY RAND()";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
$rowKliks = mysql_fetch_object($resultKliks);
//partners gegevens
$querypartners = "SELECT * FROM partners";
$resultpartners = mysql_query($querypartners) or die (mysql_error());
while ($rowpartners = mysql_fetch_object($resultpartners))
{
echo '<a href="partneruit.php?partner_id='. $rowpartners->partner_id.'" title="'. $rowpartners->partner_naam.'" target="_blank">-'.$rowpartners->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
//Kliks van partners
$queryKliks = "
SELECT
p.partner_id,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
klikspartners AS pk
INNER JOIN
partners AS p
ON
pk.partner_id = p.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p.partner_id
ORDER BY RAND()";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
$rowKliks = mysql_fetch_object($resultKliks);
//partners gegevens
$querypartners = "SELECT * FROM partners";
$resultpartners = mysql_query($querypartners) or die (mysql_error());
while ($rowpartners = mysql_fetch_object($resultpartners))
{
echo '<a href="partneruit.php?partner_id='. $rowpartners->partner_id.'" title="'. $rowpartners->partner_naam.'" target="_blank">-'.$rowpartners->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
Elsy schreef op 29.10.2006 11:01:
Ja, in de klikspartners tabel staan alleen de partner_id's waar op geklikt is nog voor ik die andere 3 nieuwe linkpartners had toegevoegd.
Waarschijnlijk kan ik dus beter een andere query maken om de linkpartners te tonen. Ik zal het eens proberen.
Waarschijnlijk kan ik dus beter een andere query maken om de linkpartners te tonen. Ik zal het eens proberen.
Klopt. Als je een LEFT JOIN zou doen, krijg je altijd alle linkpartners.
Ik heb (in de eerste code)INNER JOIN vervangen met LEFT JOIN maar dat maakt niet uit.
Edit:
Ik moet er trouwens vandoor. Kijk vanavond nog wel even of het is opgelost!
Ik moet er trouwens vandoor. Kijk vanavond nog wel even of het is opgelost!
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Dit zou denk ik moeten werken:
Dit is het aantal id's dat voorkomt in de rij van partner_id van de kliks tabel.
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
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
<?php
//Kliks van partners
$queryKliks = "
SELECT
p.partner_id,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
partners AS p
LEFT JOIN
klikspartners AS pk
ON
pk.partner_id = p.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p.partner_id";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
$rowKliks = mysql_fetch_object($resultKliks);
//partners gegevens
$querypartners = "SELECT * FROM partners";
$resultpartners = mysql_query($querypartners) or die (mysql_error());
while ($rowpartners = mysql_fetch_object($resultpartners))
{
echo '<a href="partneruit.php?partner_id='. $rowpartners->partner_id.'" title="'. $rowpartners->partner_naam.'" target="_blank">-'.$rowpartners->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
//Kliks van partners
$queryKliks = "
SELECT
p.partner_id,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
partners AS p
LEFT JOIN
klikspartners AS pk
ON
pk.partner_id = p.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p.partner_id";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
$rowKliks = mysql_fetch_object($resultKliks);
//partners gegevens
$querypartners = "SELECT * FROM partners";
$resultpartners = mysql_query($querypartners) or die (mysql_error());
while ($rowpartners = mysql_fetch_object($resultpartners))
{
echo '<a href="partneruit.php?partner_id='. $rowpartners->partner_id.'" title="'. $rowpartners->partner_naam.'" target="_blank">-'.$rowpartners->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
Hij geeft nu wel het aantal kliks weer achter de linkpartners.
Alleen geeft hij de linkpartners weer waar ook daadwerkelijk op geklikt is.
Dus als het partner_id nog niet voorkomt in de klikspartners tabel dan geeft hij die linkpartner niet weer op de pagina.
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
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
<?php
//Kliks van partners
$queryKliks = "
SELECT
p1.partner_id,
p1.partner_naam,
p1.partner_url,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
klikspartners AS pk
INNER JOIN
partners AS p1
ON
pk.partner_id = p1.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p1.partner_id
ORDER BY RAND()";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
//partners gegevens
while ($rowKliks = mysql_fetch_object($resultKliks))
{
echo '<a href="partneruit.php?partner_id='. $rowKliks->partner_id.'" title="'. $rowKliks->partner_naam.'" target="_blank">-'.$rowKliks->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
//Kliks van partners
$queryKliks = "
SELECT
p1.partner_id,
p1.partner_naam,
p1.partner_url,
COUNT(pk.datumtijd) AS aantal_kliks
FROM
klikspartners AS pk
INNER JOIN
partners AS p1
ON
pk.partner_id = p1.partner_id
WHERE
YEAR(pk.datumtijd ) = YEAR( CURDATE() )
GROUP BY p1.partner_id
ORDER BY RAND()";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
//partners gegevens
while ($rowKliks = mysql_fetch_object($resultKliks))
{
echo '<a href="partneruit.php?partner_id='. $rowKliks->partner_id.'" title="'. $rowKliks->partner_naam.'" target="_blank">-'.$rowKliks->partner_naam.'</a> ['.$rowKliks->aantal_kliks.']<br>';
}
?>
Ik weet niet zeker, maar volgens mij moet je er een OUTER JOIN (of RIGHT JOIN, als ik het goed heb) van maken.
En OUTER JOIN geeft deze foutmelding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUTER JOIN partners AS p1 ON pk.partner_id = p1.partner_id WHERE YEAR(pk.datumti' at line 8
Dat betekent dus dat je voor ELKE klik een nieuwe record aanmaakt in de tabel klikspartners?
Elsy schreef op 29.10.2006 21:01:
Ja, omdat ik wil kunnen laten zien hoeveel kliks er per maand of per jaar waren.
Je kan dan toch in een apart tabelletje tellen? Elke keer als er geklikt wordt $waarde + 1
@ Thomas: dan wordt het wel moeilijk om het per maand te laten zien. Je hebt dan namelijk alleen een totaal zonder DATETIME.
Hij laat nu alle partners zien maar niet het aantal kliks erachter:
Ik heb jouw code even aangepast met de juiste tabel namen.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$queryKliks = "
SELECT partners.partner_naam, COUNT( klikspartners.id ) AS totaal
FROM partners
LEFT JOIN klikspartners ON partners.partner_id = klikspartners.partner_id
GROUP BY partners.partner_naam";
?>
$queryKliks = "
SELECT partners.partner_naam, COUNT( klikspartners.id ) AS totaal
FROM partners
LEFT JOIN klikspartners ON partners.partner_id = klikspartners.partner_id
GROUP BY partners.partner_naam";
?>