Hoeveel kliks per link?
<script language="javascript" type="text/javascript" src="http://views.m4n.nl/_v?AffiliateID=2895&zoneid=181285"></script>
Het werkte eerst wel omdat je dan gewoon een gedeelte van dat script op je website zet en de src met een variabele erin.
Zo heb ik het nu nog op de index.php wie online staat.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
switch(true)//haal de juiste link soort uit de database
{
case ($rowLink->java):
echo '<tr>';
echo '<td class="link">-<script language="javascript" type="text/javascript" src="' . $rowLink->java . '"></script>';
echo '</td>';
echo '</tr>'.PHP_EOL;
break;
default:
echo '<tr>';
echo '<td class="link">-<a href="'. $rowLink->url.'" target="_blank">'.$rowLink->link_tekst.'</a>';
echo '</td>';
echo '</tr>'.PHP_EOL;
break;
}
?>
switch(true)//haal de juiste link soort uit de database
{
case ($rowLink->java):
echo '<tr>';
echo '<td class="link">-<script language="javascript" type="text/javascript" src="' . $rowLink->java . '"></script>';
echo '</td>';
echo '</tr>'.PHP_EOL;
break;
default:
echo '<tr>';
echo '<td class="link">-<a href="'. $rowLink->url.'" target="_blank">'.$rowLink->link_tekst.'</a>';
echo '</td>';
echo '</tr>'.PHP_EOL;
break;
}
?>
Als je hier boven een link gaat staan zie je meteen de url waar je naar toe moet.
-------------------------
Maar nu moet er dus een tussenpagina.php tussen komen die het link_id uit de browser leest als ik het goed heb en hem daar dan dmv een variabele inleest en je doorstuurd.
Dit gaat goed met een gewonen url maar niet met een javascript url omdat daar dat hele gedoe blijkbaar bij omheen moet komen te staan.
Nu op de index2.php waar ik hier mee oefen staat nu deze code :
Code (php)
Als je boven een link gaat staan zie je dit:
http://www.winkeltop10.nl/index2.php/tussenpagina.php?link_id=92
Stond er eerder nog meer omheen, of werkt het alleen als je het in de <head> </head> tags van een pagina zet.
Probeer dat eens, de standaard tags (<html><head></head><body></body></html) voor een pagina erbij in bouwen en dan je script tussen de head tags.
Dit is dus de tussenpagina.php
<html>
<head>
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include("diversen.inc");
//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['link_id']) && (is_numeric($_GET['link_id']))) {
mysql_query("UPDATE winkel_linken SET kliks = kliks+1 WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$resultLink = mysql_query("SELECT * FROM winkel_linken WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$rowLink = mysql_fetch_object($resultLink);
if ($rowLink->java)
{
echo '<script language="javascript" type="text/javascript" src="'.$rowLink->java.'"></script>';
}
else
{
header("Location:".$rowLink->url);
}
exit("U wordt doorgestuurd");
}
?>
include("diversen.inc");
//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['link_id']) && (is_numeric($_GET['link_id']))) {
mysql_query("UPDATE winkel_linken SET kliks = kliks+1 WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$resultLink = mysql_query("SELECT * FROM winkel_linken WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$rowLink = mysql_fetch_object($resultLink);
if ($rowLink->java)
{
echo '<script language="javascript" type="text/javascript" src="'.$rowLink->java.'"></script>';
}
else
{
header("Location:".$rowLink->url);
}
exit("U wordt doorgestuurd");
}
?>
</head>
<body></body>
</html>
Maar ik dacht dat het wel kon.
-Dan kan ik ook verder want ik wil nog graag in dat bovenste gedeelte de best bezochte 10 linken hebben staan.
-En hoe zet je alle kliks op linken bv 1keer per jaar weer op nul?
"SELECT link FROM tabel ORDER BY visits DESC LIMIT 0,10"
Je kan bijvoorbeeld met:
Code (php)
Edit:
Heb je die javascript al wel aan de praat gehad dan, bijvoorbeeld bij zoals het eerder was?
Heb je die javascript al wel aan de praat gehad dan, bijvoorbeeld bij zoals het eerder was?
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
Ja, dat lukte wel omdat dan wat er om de src heen zit gewoon al in de pagina staat en je dan rechtstreeks door op die link te klikken naar de pagina gaat van de adverteerder.
Robert:
Zet je dat dan op de tussenpagina neer?
En hoe dan precies?
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
<?php
include("diversen.inc");
//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['link_id']) && (is_numeric($_GET['link_id']))) {
mysql_query("UPDATE winkel_linken SET kliks = kliks+1 WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$resultLink = mysql_query("SELECT * FROM winkel_linken WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$rowLink = mysql_fetch_object($resultLink);
header("Location:".$rowLink->url);
exit("U wordt doorgestuurd");
}
?>
include("diversen.inc");
//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['link_id']) && (is_numeric($_GET['link_id']))) {
mysql_query("UPDATE winkel_linken SET kliks = kliks+1 WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$resultLink = mysql_query("SELECT * FROM winkel_linken WHERE link_id = ".$_GET['link_id']) or die(mysql_error());
$rowLink = mysql_fetch_object($resultLink);
header("Location:".$rowLink->url);
exit("U wordt doorgestuurd");
}
?>
Ik weet niet goed waar het stukje script moet staan.
Dit heb ik nu:
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
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
<?php
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "SELECT link_naam, url FROM winkel_linken ORDER BY kliks DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
for ($teller = 0;
$teller <= 10;
$teller++)
while ($rowKlik = mysql_fetch_object($resultKlik))
{
echo '<td align="left" class="link10" >';
echo ''. $teller.'.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik->link_naam.'' ;
$counter++;
if($counter==$kolommen)
{
echo '</td></tr><tr>';
$counter = 0;
}
}
echo '</td></tr></table>'.PHP_EOL;
?>
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "SELECT link_naam, url FROM winkel_linken ORDER BY kliks DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
for ($teller = 0;
$teller <= 10;
$teller++)
while ($rowKlik = mysql_fetch_object($resultKlik))
{
echo '<td align="left" class="link10" >';
echo ''. $teller.'.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik->link_naam.'' ;
$counter++;
if($counter==$kolommen)
{
echo '</td></tr><tr>';
$counter = 0;
}
}
echo '</td></tr></table>'.PHP_EOL;
?>
ps. ga morgen verder
Ik bedenk me net dat dat wat te kort door de bocht is, (mooi dat het wel werkt met de links nu trouwens) als je van 1 januari uitgaat, dan blijft die de hele tabel gedurende de hele dag 1 januari elke keer resetten. Ik zal nog eens rustig nadenken over dit probleem, en ga er hierbij vanuit dat je elk jaar op 1-1 de data weer wilt resetten. (dit kan je handmatig doen, of door cronjobs te maken, maar volgens mij kan het ook in je script ingebouwd worden. Misschien heeft Jan hier weer een schitterende oplossing voor)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "SELECT link_naam, url FROM winkel_linken ORDER BY kliks DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKlik = mysql_fetch_object($resultKlik))
{
echo '<td align="left" class="link10" >';
echo ''. $teller.'.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik->link_naam.'</a></td>' ;
$teller++;
}
echo '</tr></table>'.PHP_EOL;
?>
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "SELECT link_naam, url FROM winkel_linken ORDER BY kliks DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKlik = mysql_fetch_object($resultKlik))
{
echo '<td align="left" class="link10" >';
echo ''. $teller.'.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik->link_naam.'</a></td>' ;
$teller++;
}
echo '</tr></table>'.PHP_EOL;
?>
Robert:
Ik bedenk me net dat dat wat te kort door de bocht is, (mooi dat het wel werkt met de links nu trouwens) als je van 1 januari uitgaat, dan blijft die de hele tabel gedurende de hele dag 1 januari elke keer resetten. Ik zal nog eens rustig nadenken over dit probleem, en ga er hierbij vanuit dat je elk jaar op 1-1 de data weer wilt resetten. (dit kan je handmatig doen, of door cronjobs te maken, maar volgens mij kan het ook in je script ingebouwd worden. Misschien heeft Jan hier weer een schitterende oplossing voor)
Uh, Robert....
Misschien is het beter om alle kliks te resetten per maand, anders krijg je wel een erg groot getal erachter te staan. (hoop ik tenminste) En dan is de top 10 ook leuker.
En ik heb even gekeken maar het is mogelijk om cronjobs te maken maar dit is nieuw voor mij.
Robert:
En over de top 10:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "SELECT link_naam, url FROM winkel_linken ORDER BY kliks DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKlik = mysql_fetch_object($resultKlik))
{
echo '<td align="left" class="link10" >';
echo ''. $teller.'.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik->link_naam.'</a></td>' ;
$teller++;
}
echo '</tr></table>'.PHP_EOL;
?>
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "SELECT link_naam, url FROM winkel_linken ORDER BY kliks DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels niet weergeven, probeer het later opnieuw.");
//geeft de top 10 aan van 1 tot 10
$teller=1;
while ($rowKlik = mysql_fetch_object($resultKlik))
{
echo '<td align="left" class="link10" >';
echo ''. $teller.'.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik->link_naam.'</a></td>' ;
$teller++;
}
echo '</tr></table>'.PHP_EOL;
?>
Jee, weer zo simpel, ik zit daar weer een uur in mijn boek te zoeken en moeilijk te doen.....bedankt.
1) mysql_fetch_assoc is ongeveer een factor twee sneller dan mysql_fetch_object
2) doe aan code formatting. Daardoor wordt het zoveel beter leesbaar:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "
SELECT link_naam, url
FROM winkel_linken
ORDER BY kliks
DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels 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" class="link10" >';
echo $teller . '.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik['link_naam'] . '</a></td>' ;
$teller++;
}
echo '</tr></table>' . PHP_EOL;
?>
echo '<table><tr>';
$kolommen = 2;
//Laat de 10 best bezochte linken zien
$queryKlik = "
SELECT link_naam, url
FROM winkel_linken
ORDER BY kliks
DESC LIMIT 0,10";
$resultKlik = mysql_query($queryKlik) or die ("Sorry maar ik kan de beste 10 winkels 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" class="link10" >';
echo $teller . '.<a href="'. $rowKlik->url.'" target="_blank">'.$rowKlik['link_naam'] . '</a></td>' ;
$teller++;
}
echo '</tr></table>' . PHP_EOL;
?>
Elsy:
Uh, Robert....
Misschien is het beter om alle kliks te resetten per maand, anders krijg je wel een erg groot getal erachter te staan. (hoop ik tenminste) En dan is de top 10 ook leuker.
En ik heb even gekeken maar het is mogelijk om cronjobs te maken maar dit is nieuw voor mij.
Misschien is het beter om alle kliks te resetten per maand, anders krijg je wel een erg groot getal erachter te staan. (hoop ik tenminste) En dan is de top 10 ook leuker.
En ik heb even gekeken maar het is mogelijk om cronjobs te maken maar dit is nieuw voor mij.
In het scherm van de cronjobs kan je een periode aangeven waarin elke keer een script aan wordt geroepen.
In jouw geval:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
include('diversen.inc');
$sql="UPDATE tabel SET clicks=0";
$query=mysql_query($sql);
?>
include('diversen.inc');
$sql="UPDATE tabel SET clicks=0";
$query=mysql_query($sql);
?>
Dit scriptje roep je aan, en je zet een 1 in het veld voor maand. Dan wordt 1 keer in de maand het scriptje aangeroepen, en de clicks gereset.
Bedankt voor de tips.
Code formatting moet je waarschijnlijk zelf doen maar als ik de regels niet echt ken weet ik ook niet hoe het hoort. Of heb je daar iets voor dat alles netjes neer wordt gezet.
By command zet je het pad naar je script neer.
Elsy:
@Jan
Bedankt voor de tips.
Code formatting moet je waarschijnlijk zelf doen maar als ik de regels niet echt ken weet ik ook niet hoe het hoort. Of heb je daar iets voor dat alles netjes neer wordt gezet.
Bedankt voor de tips.
Code formatting moet je waarschijnlijk zelf doen maar als ik de regels niet echt ken weet ik ook niet hoe het hoort. Of heb je daar iets voor dat alles netjes neer wordt gezet.
Codeformatting zou je inderdaad zelf moeten doen, Jan heeft daar al een voorzetje voor gegeven in de query in de code, zoals hij hem liet zien.
Ook een beetje mij fout, want ik werk normaal gesproken wel met code formatting, omdat de code zoveel beter leesbaar is.
(Jan heeft de query over meerdere regels uitgetrokken, dat is het voorbeeld van code-formatting)
Verder dragen natuurlijk ook tabs en dergelijke bij aan de leesbaarheid van de code.