Уважаемые форумчане! Прошу Вас помочь мне в решении проблемы Fatal error: Call to a member function query() on a non-object in /home/-/public_html/competition_ref_fun.php on line 64 Возможно,неправильные запросы и не получается разобраться.. Может быть будут у вас какие нибудь идеи или же примеры,исходники по типу? Код (PHP): <? require("config.php"); function addcompetition_ref($tip, $user,$value,$ref) { $sql=$db->query("SELECT dstop,dstart,id FROm wrc_competition_ref WHERE tip='$tip' and status='1' and user='$ref' and block='0' limit 1"); if($db->num_rows($sql)>0) { $row=$db->get_row($sql); $dstop = $row["dstop"]; $dstart = $row["dstart"]; $id = $row["id"]; $t = time(); if($dstop>$t&&$t>$dstart) // Если дата конкурса не закончилась, продолжаем { $res1=$db->query("select resvalue,id from wrc_compdata_ref where idk='$id' and user='$user' limit 1"); if($db->num_rows($res1)>0) { $res1=$db->get_row($res1); $resvalue=$res1["resvalue"]+$value; $db->query("update wrc_compdata_ref set resvalue='$resvalue' where id='".$res1["id"]."'"); }else{ $db->query("insert into wrc_compdata_ref (idk,user,resvalue) values ('$id','$user','$value')"); } } } } // Проверка конкурса ----------------------------------------------------------------------------------------------------------------------- function pr_ref_competition() { $sql=$db->query("select id,dstop,min,mest,p1,p2,p3,p4,p5,user,bank from wrc_competition_ref where status=1 ")or exit(mysql_error()); while($row=$db->get_row($sql)) { $id=$row["id"]; $dstop=$row["dstop"]; $min=$row["min"]; $mest=$row["mest"]; $aUser=$row["user"]; $aBank=$row["bank"]; if($dstop<time()) // если вышло время, начисляем призы { $i=1; $db->query("update wrc_competition_ref set status='2',bank=0 where id='$id'"); $sql2=$db->query("select id,user,resvalue,status from wrc_compdata_ref where idk='$id' order by resvalue desc limit $mest"); while($row2=$db->get_row($sql2)) { $cUser=$row2["user"]; $cResvalue=$row2["resvalue"]; $cPriz=$row["p".$i]; $cStatus=$row2["status"]; if($cResvalue>=$min&&$cStatus==0) { $db->query("update wrc_compdata_ref set status='$cPriz' where id='".$row2["id"]."'"); // пометили что начислили $db->query("update tb_users set money=money+'$cPriz' where username='".$cUser."'"); // Начисляем приз $aBank-=$cPriz; } $i++; } $db->query("update tb_users set money=money+'$aBank' where username='".$aUser."'"); // возвратили неиспользованное } } } // Определяем кто является рефералом в разных скриптах ----------------------------------------------------------------------------------------- function getref($t,$user) { $sql=$db->query("select referer from tb_users where username='$user' limit 1"); $row=mysqli_fetch_row($sql); $ref=$row["referer"]; if($t==0) { $sql=$db->query("select username from tb_users where id='$ref' limit 1"); $row=mysqli_fetch_row($sql); $ref = $row["username"]; } return $ref; } ?> Линия 64 с ошибкой подчеркнута: // Определяем кто является рефералом в разных скриптах -------------------- function getref($t,$user) { $sql=$db->query("select referer from tb_users where username='$user' limit 1");
Функция не видит вашу переменную $db, область видимости не позволяет. Вам нужно передать ее в функцию либо сделать global $db; внутри функции или использовать ООП.
С global у меня появляется синтаксическая ошибка T_Global Можете подать пример использования ООП для этого кода?
Код (PHP): function addcompetition_ref($tip, $user,$value,$ref, $db) { и так везде, где ты используешь переменную $db