Dit is mijn code:
<?php echo $rij['url'];?> geeft nu dus alle linken weer die het ip-adres nog niet gezien heeft. Maar ik wil dat er maar 1 weergegeven wordt die het ip nog niet gezien heeft. Als ik met iets zoals dit werk:
$counter = 0;
$max = 1;
while (($rij = mysql_fetch_array($result_rot_linken)) and ($counter < $max))
dan is de fout dat ook voor maar 1 link gaat kijken of je die al gezien hebt. Ik heb ook al wat met een break zitten proberen maar dat haalt ook niks uit en maakt het script heel erg traag. Hoe kan ik dit oplossen?
Hopelijk snappen jullie wat ik wil, alvast bedankt.
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '0');
include("inc/config.php"); // Contains header etc.
include("cronjobs/verplaats_rotator.php"); // Contains header etc.
$ip=$_SERVER['REMOTE_ADDR'];
$u = $_GET["u"];
$t = $_GET["t"];
$datum=date("d-m-Y", time());
// Stap 1. Kijk of er een lid is aangegeven.
if($u == ''){
?>
Geen lid aangegeven. Advertentie van mij
<?php
}else{
// Stap 2. Kijk of lid bestaat
$sql_bestaat_lid = "SELECT * FROM `rotje_leden` WHERE `gebruikersnaam` = '$u'";
$result_bestaat_lid=mysql_query($sql_bestaat_lid);
$num_bestaat_lid =mysql_num_rows($result_bestaat_lid);
if($num_bestaat_lid == 0){
?>
Deze gebruiker bestaat niet. Advertentie van mij
<?php
}else{
// Stap 3. Bepaal welke linken kans maken om geslecteerd worden.
if($t == ''){
$sql_rot_linken = "SELECT * FROM `rotje_rotatorlinken` WHERE `lid` = '$u' AND `status` = 'actief'";
$result_rot_linken=mysql_query($sql_rot_linken);
$num_rot_linken =mysql_num_rows($result_rot_linken);
?>
Linken met elke tijd.<br>
<?php
}else{
$sql_rot_linken = "SELECT * FROM `rotje_rotatorlinken` WHERE `lid` = '$u' AND `status` = 'actief' AND `type` = '$t'";
$result_rot_linken=mysql_query($sql_rot_linken);
$num_rot_linken =mysql_num_rows($result_rot_linken);
?>
<b>Linken met <?php echo $t;?></b>: <?php echo $num_rot_linken;?> gevonden<br>
<?php
// Stap 4. Kijken of er linken gevonden zijn
if($num_rot_linken == 0){
?>
Geen linken gevonden.<br>
<?php
}else{
// Stap 5. Kijken welke linken er al geklikt zijn en welke niet
while ($rij = mysql_fetch_array($result_rot_linken))
{
$rotator_link_id=$rij['id'];
$sql_rot_link_geklikt = "SELECT * FROM `rotje_rotator_geklikt` WHERE `IP` = '$ip' AND `rotator_link_id` = '$rotator_link_id'";
$result_rot_link_geklikt=mysql_query($sql_rot_link_geklikt);
$num_rot_link_geklikt =mysql_num_rows($result_rot_link_geklikt);
if($num_rot_link_geklikt == 0){ // We hebben de link nog niet geklikt
// Registreer het klikje!
$tijd = time();
$type_link = $rij['type'];
$sql_invoegen = "INSERT INTO `chrishn5_main`.`rotje_rotator_geklikt` VALUES ('','$rotator_link_id','$type_link','$tijd','$ip','$datum')";
$send_invoegen = mysql_query($sql_invoegen);
?>
<?php echo $rij['url'];?><br>
<?php
} else {
?>
Geen link gevonden omdat je ze allemaal al gezien hebt! Advertentie van mij.<br>
<?php
} // Sluit link al geklikt stap 5.
} // Sluit de while van stap 5.
} // Sluit kijken of er linken gevonden zijn (stap 4)
} // Sluit selectie linken met tijd (stap 3)
} // Sluit lid bestaat (stap 2)
} // Sluit lid aangegeven (stap 1)
?>
<?php echo $rij['url'];?> geeft nu dus alle linken weer die het ip-adres nog niet gezien heeft. Maar ik wil dat er maar 1 weergegeven wordt die het ip nog niet gezien heeft. Als ik met iets zoals dit werk:
$counter = 0;
$max = 1;
while (($rij = mysql_fetch_array($result_rot_linken)) and ($counter < $max))
dan is de fout dat ook voor maar 1 link gaat kijken of je die al gezien hebt. Ik heb ook al wat met een break zitten proberen maar dat haalt ook niks uit en maakt het script heel erg traag. Hoe kan ik dit oplossen?
Hopelijk snappen jullie wat ik wil, alvast bedankt.