263 $result = $this->db->query(
265 SELECT COUNT(tst_pass_result.workingtime) cnt 266 FROM object_reference 267 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 268 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 269 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 270 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 271 AND tst_pass_result.pass = tst_result_cache.pass 272 INNER JOIN usr_data ON usr_data.usr_id = tst_active.user_fi 273 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer') .
' 274 AND tst_active.user_fi != ' . $this->db->quote($a_user_id,
'integer') .
' 275 AND round(reached_points/max_points*100) >= 277 SELECT round(reached_points/max_points*100) 278 FROM object_reference 279 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 280 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 281 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 282 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 283 AND tst_pass_result.pass = tst_result_cache.pass 284 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer') .
' 285 AND tst_active.user_fi = ' . $this->db->quote($a_user_id,
'integer') .
' 289 $row = $this->db->fetchAssoc($result);
290 $better_participants = $row[
'cnt'];
291 $own_placement = $better_participants + 1;
293 $result = $this->db->query(
295 SELECT COUNT(tst_pass_result.workingtime) cnt 296 FROM object_reference 297 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 298 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 299 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 300 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 301 AND tst_pass_result.pass = tst_result_cache.pass 302 INNER JOIN usr_data ON usr_data.usr_id = tst_active.user_fi 303 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer')
305 $row = $this->db->fetchAssoc($result);
306 $number_total = $row[
'cnt'];
308 $result = $this->db->query(
310 SELECT tst_result_cache.*, round(reached_points/max_points*100) as percentage , 311 tst_pass_result.workingtime, usr_id, usr_data.firstname, usr_data.lastname 312 FROM object_reference 313 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 314 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 315 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 316 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 317 AND tst_pass_result.pass = tst_result_cache.pass 318 INNER JOIN usr_data ON usr_data.usr_id = tst_active.user_fi 320 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer') .
' 321 AND tst_active.user_fi = ' . $this->db->quote($a_user_id,
'integer') .
' 324 SELECT tst_result_cache.*, round(reached_points/max_points*100) as percentage, 325 tst_pass_result.workingtime, usr_id, usr_data.firstname, usr_data.lastname 326 FROM object_reference 327 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 328 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 329 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 330 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 331 AND tst_pass_result.pass = tst_result_cache.pass 332 INNER JOIN usr_data ON usr_data.usr_id = tst_active.user_fi 333 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer') .
' 334 AND tst_active.user_fi != ' . $this->db->quote($a_user_id,
'integer') .
' 335 AND round(reached_points/max_points*100) >= 337 SELECT round(reached_points/max_points*100) 338 FROM object_reference 339 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 340 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 341 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 342 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 343 AND tst_pass_result.pass = tst_result_cache.pass 344 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer') .
' 345 AND tst_active.user_fi = ' . $this->db->quote($a_user_id,
'integer') .
' 347 ORDER BY round(reached_points/max_points*100) ASC 348 LIMIT 0, ' . $this->db->quote($this->
object->getHighscoreTopNum(),
'integer') .
' 351 SELECT tst_result_cache.*, round(reached_points/max_points*100) as percentage, 352 tst_pass_result.workingtime, usr_id, usr_data.firstname, usr_data.lastname 353 FROM object_reference 354 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 355 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 356 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 357 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 358 AND tst_pass_result.pass = tst_result_cache.pass 359 INNER JOIN usr_data ON usr_data.usr_id = tst_active.user_fi 360 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer') .
' 361 AND tst_active.user_fi != ' . $this->db->quote($a_user_id,
'integer') .
' 362 AND round(reached_points/max_points*100) <= 364 SELECT round(reached_points/max_points*100) 365 FROM object_reference 366 INNER JOIN tst_tests ON object_reference.obj_id = tst_tests.obj_fi 367 INNER JOIN tst_active ON tst_tests.test_id = tst_active.test_fi 368 INNER JOIN tst_result_cache ON tst_active.active_id = tst_result_cache.active_fi 369 INNER JOIN tst_pass_result ON tst_active.active_id = tst_pass_result.active_fi 370 AND tst_pass_result.pass = tst_result_cache.pass 371 WHERE object_reference.ref_id = ' . $this->db->quote($a_test_ref_id,
'integer') .
' 372 AND tst_active.user_fi = ' . $this->db->quote($a_user_id,
'integer') .
' 374 ORDER BY round(reached_points/max_points*100) ASC 375 LIMIT 0, ' . $this->db->quote($this->
object->getHighscoreTopNum(),
'integer') .
' 377 ORDER BY round(reached_points/max_points*100) DESC, tstamp ASC 378 LIMIT 0, ' . $this->db->quote($this->object->getHighscoreTopNum(),
'integer') .
' 382 $i = $own_placement - ($better_participants >= $this->
object->getHighscoreTopNum()
383 ? $this->
object->getHighscoreTopNum() : $better_participants);
392 while ($row = $this->db->fetchAssoc($result)) {
398 if ($number_total >
$i) {
getResultTableRow(array $row, int $i, int $usrId)