Z tym kawałkiem kodu, który podałeś, można stwierdzić, że są dwa możliwe powody:
- Warunek $num > 1 nie jest spełniony
- warunek WHERE session_ip = '".$user_ip."' AND session_user_id = ".$user_id." w zapytaniu SQL nie jest spełniony.
Żeby się dowiedzieć, która z tych potencjalnych przyczyn jest powodem, wstaw jakieś echa, które pomogą Ci to ustalić, np:
else if ($num > 1) {
echo 'warunek $num > 1 spełniony: $num=' . $num; die(); $del = $num - 1;
for ($i=0; $i<$del; $i++) {
$sql = "DELETE FROM `sessions` WHERE session_ip = '".$user_ip."' AND session_user_id = ".$user_id." LIMIT 1";
$result = mysql_query($sql) or
die(sql_error
($lang['Error_Delete_Values'], __LINE__, __FILE__)); }
}
Jeśli po uruchomieniu kodu dostaniesz komunikat:
Kod
warunek $num > 1 spełniony: $num=2
(2 albo więcej), to znaczy, że to warunek w zapytaniu SQL nie jest spełniony, czyli że nie masz rekordów z określonym user_ip i session_user_id. W przeciwnym razie, kod się nie wykonuje bo
$num <= 1.
Wykorzystaj tą metodę z echem do debugowania. Przydatna też może być funkcja
var_dump().