0) return $row['parent']; else return self::find_parent_loop(0, $row['parent']); } /** * poisce naslednjo vre_id v loopu * */ public function findNextLoopId($if_id = 0) { if ($if_id == 0) { $sql = sisplet_query("SELECT if_id FROM srv_loop_data WHERE id='" . get('loop_id') . "'"); $row = mysqli_fetch_array($sql); $if_id = $row['if_id']; $loop_id = get('loop_id'); } else $loop_id = 0; $sql = sisplet_query("SELECT spr_id, max FROM srv_loop WHERE if_id = '$if_id'"); $row = mysqli_fetch_array($sql); $spr_id = $row['spr_id']; $max = $row['max']; $spr = Cache::srv_spremenljivka($spr_id); // Radio, checkbox, sn imena if ($spr['tip'] == 2 || $spr['tip'] == 3 || $spr['tip'] == 9) { $data_vrednost = array(); if ($spr['tip'] == 9) $sql1 = sisplet_query("SELECT vre_id FROM srv_data_text" . get('db_table') . " WHERE spr_id='$spr_id' AND usr_id='" . get('usr_id') . "'"); else $sql1 = sisplet_query("SELECT vre_id FROM srv_data_vrednost" . get('db_table') . " WHERE spr_id='$spr_id' AND usr_id='" . get('usr_id') . "'"); while ($row1 = mysqli_fetch_array($sql1)) { $data_vrednost[$row1['vre_id']] = 1; } $vre_id = ''; $i = 1; $sql = sisplet_query("SELECT lv.vre_id, lv.tip FROM srv_loop_vre lv, srv_vrednost v WHERE lv.if_id='$if_id' AND lv.vre_id=v.id ORDER BY v.vrstni_red ASC"); while ($row = mysqli_fetch_array($sql)) { if ($row['tip'] == 0) { // izbran if (isset($data_vrednost[$row['vre_id']])) { $vre_id .= ', ' . $row['vre_id']; $i++; } } elseif ($row['tip'] == 1) { // ni izbran if (!isset($data_vrednost[$row['vre_id']])) { $vre_id .= ', ' . $row['vre_id']; $i++; } } elseif ($row['tip'] == 2) { // vedno $vre_id .= ', ' . $row['vre_id']; $i++; } // nikoli nimamo sploh v bazi, zato ni potrebno nic, ker se nikoli ne prikaze if ($i > $max && $max > 0) break; } $vre_id = substr($vre_id, 2); if ($vre_id == '') return null; $sql = sisplet_query("SELECT l.id FROM srv_loop_data l, srv_vrednost v WHERE l.if_id='$if_id' AND l.id > '$loop_id' AND l.vre_id IN ($vre_id) AND l.vre_id=v.id ORDER BY l.id ASC"); if (!$sql) { echo 'err56545' . mysqli_error($GLOBALS['connect_db']); die(); } $row = mysqli_fetch_array($sql); if (mysqli_num_rows($sql) > 0) return $row['id']; else return null; } // Number elseif ($spr['tip'] == 7) { $sql1 = sisplet_query("SELECT text FROM srv_data_text" . get('db_table') . " WHERE spr_id='$spr_id' AND usr_id='" . get('usr_id') . "'"); $row1 = mysqli_fetch_array($sql1); $num = (int)$row1['text']; $sql2 = sisplet_query("SELECT id FROM srv_loop_data WHERE if_id='$if_id' AND id <= '$loop_id'"); if (mysqli_num_rows($sql2) >= $num || (mysqli_num_rows($sql2) >= $max && $max > 0)) return null; $sql = sisplet_query("SELECT id FROM srv_loop_data WHERE if_id='$if_id' AND id > '$loop_id'"); $row = mysqli_fetch_array($sql); if (mysqli_num_rows($sql) > 0) return $row['id']; else return null; } // Ranking elseif ($spr['tip'] == 17) { $data_vrednost = array(); $sql1 = sisplet_query("SELECT vre_id FROM srv_data_rating WHERE spr_id='$spr_id' AND usr_id='" . get('usr_id') . "' ORDER BY vrstni_red ASC"); while ($row1 = mysqli_fetch_array($sql1)) { $data_vrednost[$row1['vre_id']] = 1; } $vre_id = ''; $i = 1; $sql = sisplet_query("SELECT lv.vre_id, lv.tip FROM srv_loop_vre lv, srv_vrednost v WHERE lv.if_id='$if_id' AND lv.vre_id=v.id ORDER BY v.vrstni_red ASC"); while ($row = mysqli_fetch_array($sql)) { if ($row['tip'] == 0) { // izbran if (isset($data_vrednost[$row['vre_id']])) { $vre_id .= ', ' . $row['vre_id']; $i++; } } elseif ($row['tip'] == 1) { // ni izbran if (!isset($data_vrednost[$row['vre_id']])) { $vre_id .= ', ' . $row['vre_id']; $i++; } } elseif ($row['tip'] == 2) { // vedno $vre_id .= ', ' . $row['vre_id']; $i++; } // nikoli nimamo sploh v bazi, zato ni potrebno nic, ker se nikoli ne prikaze if ($i > $max && $max > 0) break; } $vre_id = substr($vre_id, 2); if ($vre_id == '') return null; // Ce gre za prvi loop poiscemo ranking odgovor na prvem mestu if($loop_id == 0){ $sql = sisplet_query("SELECT l.id FROM srv_loop_data l, srv_data_rating dr WHERE l.if_id='$if_id' AND l.id > '$loop_id' AND l.vre_id IN ($vre_id) AND l.vre_id=dr.vre_id AND dr.usr_id='".get('usr_id')."' AND dr.vrstni_red = '1' "); } // Ce gre za kasnejsi loop poiscemo naslednji ranking odgovor else{ $sql2 = sisplet_query("SELECT dr.vrstni_red FROM srv_loop_data l, srv_data_rating dr WHERE l.if_id='$if_id' AND l.id='$loop_id' AND dr.vre_id=l.vre_id AND dr.usr_id='".get('usr_id')."'"); if(mysqli_num_rows($sql2) > 0){ $row2 = mysqli_fetch_array($sql2); $sql = sisplet_query("SELECT l.id FROM srv_loop_data l, srv_vrednost v, srv_data_rating dr WHERE l.if_id='$if_id' AND l.id != '$loop_id' AND l.vre_id IN ($vre_id) AND l.vre_id=v.id AND dr.vre_id=v.id AND dr.usr_id='".get('usr_id')."' AND dr.vrstni_red > '".$row2['vrstni_red']."' ORDER BY dr.vrstni_red ASC "); } else return null; } if (!$sql) { echo 'err56545' . mysqli_error($GLOBALS['connect_db']); die(); } $row = mysqli_fetch_array($sql); if (mysqli_num_rows($sql) > 0) return $row['id']; else return null; } } /** * @desc poisce prejsnjo stran - grupo, 0 pomeni konec */ public static function findPrevGrupa() { $anketa = get('anketa'); $grupa = get('grupa'); $sql = sisplet_query("SELECT vrstni_red FROM srv_grupa WHERE id = '$grupa'"); $row = mysqli_fetch_array($sql); $vrstni_red = $row['vrstni_red']; $sql = sisplet_query("SELECT id FROM srv_grupa WHERE ank_id='$anketa' AND vrstni_red<'$vrstni_red' ORDER BY vrstni_red DESC LIMIT 1"); // naslednja stran if (mysqli_num_rows($sql) > 0) { $row = mysqli_fetch_array($sql); return $row['id']; // konec } else { return 0; } } /** * @desc poisce naslednjo stran - grupo, 0 pomeni konec */ public function findNextGrupa($gru_id=0) { //vrstni red trenutne grupe if (get('grupa') > 0) { $sql = sisplet_query("SELECT vrstni_red FROM srv_grupa WHERE id = '" . get('grupa') . "'"); $row = mysqli_fetch_array($sql); $vrstni_red = $row['vrstni_red']; } elseif ($gru_id > 0) { $sql = sisplet_query("SELECT vrstni_red FROM srv_grupa WHERE id = '" . $gru_id . "'"); $row = mysqli_fetch_array($sql); $vrstni_red = $row['vrstni_red']; } else { $vrstni_red = 0; } $sql = sisplet_query("SELECT id FROM srv_grupa WHERE ank_id='" . get('anketa') . "' AND vrstni_red>'$vrstni_red' ORDER BY vrstni_red ASC LIMIT 1"); // naslednja stran if (mysqli_num_rows($sql) > 0) { $row = mysqli_fetch_array($sql); return $row['id']; } // konec else { return 0; } } }