Op de website worden alleen de kliks van id=1 getoont die in de database zitten.
EDIT: Dus bij alle linken zie je de kliks van die id1
Hoe kan dit?
code:
<?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>';
?>
[edit]
Hele post aangepast, ik had iets over het hoofd gezien
[/edit]
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:
<?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
";
?>
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.
[/edit]
?
Onbekende gebruiker
28-10-2006 11:57
Ik vind dit heel moeilijk te begrijpen, het lukt dus ook niet.
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.
//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
";
Code van de uit.php pagina, misschien doe ik hier iets niet goed.
<?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";
}
}
?>
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?
<?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;
";
?>
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?
?
Onbekende gebruiker
28-10-2006 15:55
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?
?
Onbekende gebruiker
28-10-2006 16:10
<?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
";
?>
Het ziet er logisch uit maar hij geeft overal 3 aan bij iedere link en dat is het aantal kliks van menu_id=1
Ik zie de logica van je query nu niet Elsy, je werkt met menu.menu_id, die zoals al bleek hetzelfde is als kliks.link_id.
Waarom dan niet gewoon:
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
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.
?
Onbekende gebruiker
28-10-2006 16:39
link_id moet dan toch nog geselecteerd worden van een tabel?
Hij doet het nog steeds niet. Hij geeft overal 3 aan.
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)
?
Onbekende gebruiker
28-10-2006 17:42
Oke, ik zal het proberen.
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.