Alleen kliks van id 1 worden getoond
EDIT: Dus bij alle linken zie je de kliks van die id1
Hoe kan dit?
code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
//Geef het aantal kliks weer
$queryKliks = "
SELECT
linken.id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
linken
ON
kliks.url_id = linken.menu_id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY linken.menu_id
";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
$rowKliks = mysql_fetch_object ($resultKliks);
echo'<td class="kliks">Aantal keren bezocht dit jaar: '.$rowKliks->aantal_kliks.'</td>';
echo'</tr>';
echo'<tr>';
?>
//Geef het aantal kliks weer
$queryKliks = "
SELECT
linken.id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
linken
ON
kliks.url_id = linken.menu_id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY linken.menu_id
";
$resultKliks = mysql_query($queryKliks) or die (mysql_error());
$rowKliks = mysql_fetch_object ($resultKliks);
echo'<td class="kliks">Aantal keren bezocht dit jaar: '.$rowKliks->aantal_kliks.'</td>';
echo'</tr>';
echo'<tr>';
?>
Tabel van Kliks:
Tabel linken:
Tabel menu:
Niemand die weet hoe dit komt?
Edit:
Hele post aangepast, ik had iets over het hoofd gezien
Hele post aangepast, ik had iets over het hoofd gezien
Probeer ook eens als je GROUP BY doet op "kliks.url_id"
Ik snap ook niet helemaal wat die menu_id hierbij doet, je wilt toch van elke link appart het aantal kliks hebben, of snap ik je nu verkeerd?
Als je van elke link het aantal kliks wilt is het:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//Geef het aantal kliks weer
$queryKliks = "
SELECT
linken.id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
linken
ON
kliks.url_id = linken.id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY linken.id
";
?>
//Geef het aantal kliks weer
$queryKliks = "
SELECT
linken.id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
linken
ON
kliks.url_id = linken.id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY linken.id
";
?>
Als het wel om je menu_id gaat JOIN dan de Menu tabel met de Linken tabel, aan de hand van het menu_id.
Edit:
Ik zie ook dat je er niet meer bent, en ik ga zo slapen en moet morgen werken tot 3 uur.
Daarna zal ik eens kijken of je eruit bent gekomen, en anders wel even opnieuw ernaar kijken.
Ik zie ook dat je er niet meer bent, en ik ga zo slapen en moet morgen werken tot 3 uur.
Daarna zal ik eens kijken of je eruit bent gekomen, en anders wel even opnieuw ernaar kijken.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Ik heb url_id gewijzigd in link_id dat is iets beter te volgen.
Ik wil van elke link het aantal kliks laten zien.
Ik dacht dat je met dit stukje:
kliks.link_id = linken.menu_id
zegt dat die dus hetzelfde zijn in 2 tabellen.
Ik heb 3 tabellen.
1= het menu
2=de linken
3=de kliks
Het menu_id stop ik in de kliks tabel in het link_id veld
Dit is nu de code die ik hebt, het maakt niet uit of ik van linken -> menu maak.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
//Geef het aantal kliks weer
$queryKliks = "
SELECT
linken.menu_id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
linken
ON
kliks.link_id = linken.menu_id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY linken.menu_id
";
$queryKliks = "
SELECT
linken.menu_id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
linken
ON
kliks.link_id = linken.menu_id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY linken.menu_id
";
Code van de uit.php pagina, misschien doe ik hier iets niet goed.
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
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
<?php
include("login.php");
//maak verbinding met de database
$connection = mysql_connect ($hostname,$user,$password) or die
( "Sorry maar ik kan geen contact maken met de database, probeer het later opnieuw of ververs uw browser.");
$db = mysql_select_db ($database, $connection) or die
("Sorry, maar ik kan de database niet openen.");
if(isset($_GET['id']) && (is_numeric($_GET['id'])))
{
$sql="INSERT INTO kliks
(datumtijd,link_id)
VALUES
(NOW(), '".$_GET['id']. "')";
$res =mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows() >0)
{
$resultLink = mysql_query("SELECT * FROM linken WHERE menu_id = ".$_GET['id']) or die(mysql_error());
$rowLink = mysql_fetch_object($resultLink);
header("Location:".$rowLink->url);
exit("U wordt doorgestuurd");
}
else
{
echo "er is iets misgegaan";
}
}
?>
include("login.php");
//maak verbinding met de database
$connection = mysql_connect ($hostname,$user,$password) or die
( "Sorry maar ik kan geen contact maken met de database, probeer het later opnieuw of ververs uw browser.");
$db = mysql_select_db ($database, $connection) or die
("Sorry, maar ik kan de database niet openen.");
if(isset($_GET['id']) && (is_numeric($_GET['id'])))
{
$sql="INSERT INTO kliks
(datumtijd,link_id)
VALUES
(NOW(), '".$_GET['id']. "')";
$res =mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows() >0)
{
$resultLink = mysql_query("SELECT * FROM linken WHERE menu_id = ".$_GET['id']) or die(mysql_error());
$rowLink = mysql_fetch_object($resultLink);
header("Location:".$rowLink->url);
exit("U wordt doorgestuurd");
}
else
{
echo "er is iets misgegaan";
}
}
?>
Elsy schreef op 28.10.2006 11:57:
kliks.link_id = linken.menu_id
zegt dat die dus hetzelfde zijn in 2 tabellen.
Ik heb 3 tabellen.
1= het menu
2=de linken
3=de kliks
Het menu_id stop ik in de kliks tabel in het link_id veld
zegt dat die dus hetzelfde zijn in 2 tabellen.
Ik heb 3 tabellen.
1= het menu
2=de linken
3=de kliks
Het menu_id stop ik in de kliks tabel in het link_id veld
Dus het MENU.menu_id EN de LINKEN.menu_id en de KLIKS.link_id zijn hetzelfde voor 1 bepaalde link?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//Geef het aantal kliks weer
$queryKliks = "
SELECT
linken.
kliks.link_id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY kliks.menu_id;
";
?>
//Geef het aantal kliks weer
$queryKliks = "
SELECT
linken.
kliks.link_id,
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY kliks.menu_id;
";
?>
Volgens mij zou dit genoeg moeten zijn om van ALLE kliks het link_id op te halen, en de bijbehorende aantallen weer te geven.
Ik weet niet of het zo de bedoeling is, maar dit geeft alle kliks weer. (op ID)
Trouwens, ik bedacht nog wat. Klopt het wel wat er in de database bij de kliks staat?
Quote:
Dus het MENU.menu_id EN de LINKEN.menu_id en de KLIKS.link_id zijn hetzelfde voor 1 bepaalde link?
Dit klopt wat je zegt.
De code die erbij zit klopt niet omdat er niets achter linken. staat maar wat ik er ook achter zet het werkt weer niet.
Ik krijg oa deze foutmelding: Unknown column 'linken.menu_id' in 'field list'
[qoute]Trouwens, ik bedacht nog wat. Klopt het wel wat er in de database bij de kliks staat?[/quote]
Ik heb url_id gewijzigd in link_id als je dat bedoelt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php//Geef het aantal kliks weer
$queryKliks = "
SELECT
menu.menu_id, //selecteer het menu_id
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
menu
ON
kliks.link_id = menu.menu_id //het kliks.link_id is hetzelfde als het menu.menu_id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY kliks.link_id //wat dit doet weet ik niet
";
?>
$queryKliks = "
SELECT
menu.menu_id, //selecteer het menu_id
COUNT(kliks.datumtijd) AS aantal_kliks
FROM
kliks
INNER JOIN
menu
ON
kliks.link_id = menu.menu_id //het kliks.link_id is hetzelfde als het menu.menu_id
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE()) AND YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY kliks.link_id //wat dit doet weet ik niet
";
?>
Het ziet er logisch uit maar hij geeft overal 3 aan bij iedere link en dat is het aantal kliks van menu_id=1
Waarom dan niet gewoon:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
SELECT link_id, COUNT(kliks.datumtijd) AS aantal_kliks
FROM kliks
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE())
AND
YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY link_id
FROM kliks
WHERE MONTH(kliks.datumtijd) = MONTH(CURDATE())
AND
YEAR(kliks.datumtijd) = YEAR(CURDATE())
GROUP BY link_id
Die group by groepeert de items met hetzelfde link_id met elkaar, anders telt die ALLE kliks bij elkaar.
Volgens mij moet deze query precies hetgeen doen waarvoor die bedoeld is.
Hij doet het nog steeds niet. Hij geeft overal 3 aan.
Elsy schreef op 28.10.2006 16:39:
link_id moet dan toch nog geselecteerd worden van een tabel?
Kan je eens uitleggen wat je daar precies mee bedoeld? (misschien snap ik je hele vraag wel verkeerd, en is het slim om dat helemaal uit te leggen.)
Wat wil je precies bereiken met de query, gaat het om een aantal kliks op een link (en komt dat erachter te staan)?
Waarom gebruik je die andere tabellen erbij, ik "ken" je langer dan vandaag, en ga er vanuit dat dat niet voor niets is, misschien dat het duidelijker voor me wordt als je de reden daarvan eens uitlegt.
(Sorry hoor, maar ik weet anders niet wat je bedoelt, en dan kan het helpen nogal lang gaan duren)
Als je klikt op een link dan wordt die klik in de tabel gezet.
Nu wil ik die kliks laten zien achter de link.
(Dit werkt perfect bij mijn andere site maar hier krijg ik het niet voor elkaar.)
Omdat ik een aparte tabel heb gemaakt waar de kliks in zitten moet je volgens mij gegevens uit twee tabellen halen.
Dus de kliks uit de "kliks"-tabel en de naam van de link uit de "linken" tabel.
Misschien heb ik het wel helemaal fout en heb je genoeg aan de "kliks" tabel om de gegevens te laten zien. En denk ik dus weer veel te moeilijk.
Ik was het dus weer veel te ver aan het zoeken.
Dit is de code die goed werkt:
Die code komt me wel ergens bekend voor :P Maar wel mooi dat het nu wel gewoon werkt ;)