+1 is niet +1 maar +5 ???
Hier is de code:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$mysqli->query("UPDATE users_sessions
SET datum_last_timestamp='".time()."',
session_views=session_views+1
WHERE user_id='".$user_id."' AND session_id='".$_SESSION['session_id']."'
LIMIT 1");
?>
$mysqli->query("UPDATE users_sessions
SET datum_last_timestamp='".time()."',
session_views=session_views+1
WHERE user_id='".$user_id."' AND session_id='".$_SESSION['session_id']."'
LIMIT 1");
?>
De session_views=sessoin_views+1 werkt dus niet goed, heb alleen geen idee waarom. Ergens anders in een script gaat het namelijk wel goed.
Heb ik te maken met een vreemde mysqli bug?
Gewijzigd op 01/01/1970 01:00:00 door Guido S
kijk eens in je mysqli class
Ik kan niks vreemds ontdekken, dat is gewoon:
Code (php)
1
2
3
4
2
3
4
<?php
$mysqli = new mysqli("localhost", het gebruikelijke)
or die("Kan niet verbinden: ".mysqli_connect_error());
?>
$mysqli = new mysqli("localhost", het gebruikelijke)
or die("Kan niet verbinden: ".mysqli_connect_error());
?>
Deze code staat in de bottom.php, alles wat daar niet instaat word wel goed uitgevoerd. Zover ik getest heb.
Edit: Alles wat ik op wil tellen word met x5 gedaan.
Gewijzigd op 01/01/1970 01:00:00 door Guido S
Probeer eens om je query direct in phpMyAdmin uit te voeren, dan weet je of het aan de query ligt.
Is session_views van het type int in je database?
@Midas
Dat ga ik even proberen.
Edit: In phpmyadmin werkt het wel gewoon :S
Gewijzigd op 01/01/1970 01:00:00 door Guido S
Misschien omslachtig, maar wat ik vaak doe bij dit soort dingen is het stukje met de query helemaal isoleren van de andere code. Ik maak dus een soort testcase. Alleen een bestandje met: verbinden, query en dan kijken wat het resultaat is. Misschien een idee..
Nieuws zit er zo uit (globaal):
Code (php)
(normaal gesproken staat hij dus in bottom.php)
Edit: Toen ik de top.php weg haalde werkten het opeens weg. Dus ben ik gaan testen wat het probleem veroorzaakden in de top.php. Wat bleek, een javscript document veroorzaakten het probleem.
Iemand enig idee hoe dat kan? :P
Dit is de javascript code die het probleem veroorzaakten:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
if (document.images){
pic1 = new Image(30,30);
pic1.src = "images/loader_white.gif";
pic2 = new Image(25,75);
pic2.src = "images/rater/rating_star.gif";
pic4 = new Image(16,13);
pic4.src = "images/rater/rating_tick.gif";
pic5 = new Image(14,14);
pic5.src = "images/rater/rating_warning.gif";
}
// AJAX ----------------------------------------
var xmlHttp
function GetXmlHttpObject(){
var xmlHttp = null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
// Calculate the rating
function rate(rating,id,show5,showPerc,showVotes){
xmlHttp = GetXmlHttpObject()
if(xmlHttp == null){
alert ("Your browser does not support AJAX!");
return;
}
xmlHttp.onreadystatechange = function(){
var loader = document.getElementById('loading_'+id);
var uldiv = document.getElementById('ul_'+id);
if (xmlHttp.readyState == 4){
//loader.style.display = 'none';
var res = xmlHttp.responseText;
//alert(res);
if(res == 'already_voted'){
loader.style.display = 'block';
loader.innerHTML = '<div class="voted_twice">Je hebt al gestemd!</div>';
} else {
loader.style.display = 'block';
loader.innerHTML = '<div class="voted">Bedankt voor het stemmen!</div>';
if(show5 == true){
var out = document.getElementById('outOfFive_'+id);
var calculate = res/20;
out.innerHTML = Math.round(calculate*100)/100; // 3.47;
//out.innerHTML = Math.round((calculate*2),0)/2; // 3.5;
}
if(showPerc == true){
var perc = document.getElementById('percentage_'+id);
//var newPerc = Math.round(Math.ceil(res/5))*5;
var newPerc = res;
perc.innerHTML = newPerc+'%';
}
else if(showPerc == false){
var newPerc = res;
}
if(showVotes == true){
var votediv = document.getElementById('showvotes_'+id).firstChild.nodeValue;
var splitted = votediv.split(' ');
var newval = parseInt(splitted[0]) + 1;
if(newval == 1){
document.getElementById('showvotes_'+id).innerHTML = newval+' Stem';
} else {
document.getElementById('showvotes_'+id).innerHTML = newval+' Stemmen';
}
}
var ulRater = document.getElementById('rater_'+id);
ulRater.className = 'star-rating';
if(navigator.appName == 'Microsoft Internet Explorer'){
uldiv.style.setAttribute('width',newPerc+'%'); // IE
} else {
uldiv.setAttribute('style','width:'+newPerc+'%'); // Everyone else
}
}
} else {
loader.innerHTML = '<img src="images/loader_white.gif" alt="loading" />';
}
}
var url = "includes/rating_process.php";
var params = "id="+id+"&rating="+rating;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(params);
}
pic1 = new Image(30,30);
pic1.src = "images/loader_white.gif";
pic2 = new Image(25,75);
pic2.src = "images/rater/rating_star.gif";
pic4 = new Image(16,13);
pic4.src = "images/rater/rating_tick.gif";
pic5 = new Image(14,14);
pic5.src = "images/rater/rating_warning.gif";
}
// AJAX ----------------------------------------
var xmlHttp
function GetXmlHttpObject(){
var xmlHttp = null;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
// Calculate the rating
function rate(rating,id,show5,showPerc,showVotes){
xmlHttp = GetXmlHttpObject()
if(xmlHttp == null){
alert ("Your browser does not support AJAX!");
return;
}
xmlHttp.onreadystatechange = function(){
var loader = document.getElementById('loading_'+id);
var uldiv = document.getElementById('ul_'+id);
if (xmlHttp.readyState == 4){
//loader.style.display = 'none';
var res = xmlHttp.responseText;
//alert(res);
if(res == 'already_voted'){
loader.style.display = 'block';
loader.innerHTML = '<div class="voted_twice">Je hebt al gestemd!</div>';
} else {
loader.style.display = 'block';
loader.innerHTML = '<div class="voted">Bedankt voor het stemmen!</div>';
if(show5 == true){
var out = document.getElementById('outOfFive_'+id);
var calculate = res/20;
out.innerHTML = Math.round(calculate*100)/100; // 3.47;
//out.innerHTML = Math.round((calculate*2),0)/2; // 3.5;
}
if(showPerc == true){
var perc = document.getElementById('percentage_'+id);
//var newPerc = Math.round(Math.ceil(res/5))*5;
var newPerc = res;
perc.innerHTML = newPerc+'%';
}
else if(showPerc == false){
var newPerc = res;
}
if(showVotes == true){
var votediv = document.getElementById('showvotes_'+id).firstChild.nodeValue;
var splitted = votediv.split(' ');
var newval = parseInt(splitted[0]) + 1;
if(newval == 1){
document.getElementById('showvotes_'+id).innerHTML = newval+' Stem';
} else {
document.getElementById('showvotes_'+id).innerHTML = newval+' Stemmen';
}
}
var ulRater = document.getElementById('rater_'+id);
ulRater.className = 'star-rating';
if(navigator.appName == 'Microsoft Internet Explorer'){
uldiv.style.setAttribute('width',newPerc+'%'); // IE
} else {
uldiv.setAttribute('style','width:'+newPerc+'%'); // Everyone else
}
}
} else {
loader.innerHTML = '<img src="images/loader_white.gif" alt="loading" />';
}
}
var url = "includes/rating_process.php";
var params = "id="+id+"&rating="+rating;
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(params);
}
Gewijzigd op 01/01/1970 01:00:00 door Guido S