Bonjour,

J'ai un fonctionnement qui semble incorrect sur le code suivant sans doute dû à une petite erreur de syntaxe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
if (isset($_SESSION['pseudo'])){
$username=$_SESSION['pseudo'];
$querypub="select * from publicite where valide=1 and ((aff<quantite and type='cpm') or (clic<quantite and type='clic') or type='regie') and NOT EXISTS (select * from cpmban where cpmban.idpub=publicite.idpub and datevue=CURDATE() and (ip='$ip' or pseudo='".mysql_real_escape_string($username)."')) order by rand() limit 1";
}
else {
$querypub="select * from publicite where valide=1 and ((aff<quantite and type='cpm') or (clic<quantite and type='clic') or type='regie') and NOT EXISTS (select * from cpmban where cpmban.idpub=publicite.idpub and datevue=CURDATE() and ip='$ip') order by rand() limit 1";
}
L'objectif est de voir si le membre est connecté avec $_SESSION['pseudo'] et si c'est le cas de sélectionner toutes les publicités qui ont encore des crédits et qui n'existe pas dans la table cpmban qui recense l'ensemble des bannières vues avec le jour, l'ip voire le pseudo de la personne si elle est connectée. Si le pseudo n'est pas remplit c'est la même chose si ce n'est que seul l'ip va etre testé dans le NOT EXISTS
ou/et ici
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
if (isset($_SESSION['pseudo'])){
$querypub3="select * from cpmban where idpub=$datapub[idpub] and (ip='$ip' or pseudo='".mysql_real_escape_string($username)."')";
}
else {
$querypub3="select * from cpmban where idpub=$datapub[idpub] and ip='$ip'";
}
$resultpub3 = mysql_query($querypub3, $connection) or die('error making query');
$affected_rowspub3 = mysql_num_rows($resultpub3);
if ($affected_rowspub3==0) {
if (isset($_SESSION['pseudo'])) {
$querypub4="INSERT INTO cpmban values ('','$datapub[idpub]','".mysql_real_escape_string($username)."','$ip',CURDATE(),1)";
}
else {
$querypub4="INSERT INTO cpmban values ('','$datapub[idpub]','','$ip',CURDATE(),1)";
}
$resultpub4 = mysql_query($querypub4, $connection) or die('error making query');
}
else {
if (isset($_SESSION['pseudo'])) {
$querypub4="UPDATE cpmban SET datevue=CURDATE(), pseudo='".mysql_real_escape_string($username)."', ip='$ip' where idpub=$datapub[idpub] and (ip='$ip' or pseudo='".mysql_real_escape_string($username)."')";
}
else {
$querypub4="UPDATE cpmban SET datevue=CURDATE() where idpub=$datapub[idpub] and ip='$ip'";
}
$resultpub4 = mysql_query($querypub4, $connection) or die('error making query');
}
Le code suivant fait que l'on va voir si on trouve une ligne dans cpmban (table indiquant les bannières vues) où soit le pseudo ou l'ip est présente. Si on ne trouve pas, on insère une ligne dans cpmban et sinon on fait juste un update de la ligne.
Le problème c'est que j'ai des lignes avec deux fois le pseudo identique ce qui est théoriquement impossible enfin selon le code c'est pas possible.