2016-07-06 2 views
1

Код ниже счетчика участника и гостя. Код отлично работает, когда я добавляю простой столбец (онлайн) в таблицу active_members, когда весь код перестает работать (кроме активных_guests как эта отдельная таблица)Код перестает работать после добавления нового столбца в таблицу

Я неустанно пытался поймать все, что может быть причиной это я включил скриншот таблицы ниже. Я бы добавил новый столбец (онлайн), который является varchar для таблицы members_online, а затем запросит в следующей секции SESSION для этого нового столбца.

Почему код перестает работать, может ли кто-нибудь увидеть причину или решение?

Как только я удаляю онлайн-столбец, код снова заканчивается.

$ sqlt2 запрос ниже - это строка, которую я хочу индексировать новый онлайн-столбец.

enter image description here

include('..\db.php'); 
$con = mysqli_connect($dbsrvname, $dbusername, $dbpassword, $dbname); 

//declare variables 
$guest_timeout = time() -1 * 60; 
$member_timeout = time() -1 * 60; 
$guest_ip = $_SERVER['REMOTE_ADDR']; 
$time = time(); 

// if the session is set PUTS THE USER IN MEMBERS TABLE 
if(isset($_SESSION['CurrentUser'])){ 

    //if user is logged in 

    $sqlt = mysqli_query($con,"DELETE FROM active_guests WHERE guest_ip='".$guest_ip."'"); 



    **//I WANT TO ADD TO THE ONLINE COLUMN AND REPLACE A SIMPLE STRING INTO ONLINE** 
    $sqlt2 = mysqli_query($con,"REPLACE INTO active_members VALUES ('".$_SESSION['CurrentUser']."','".$time."')"); 
    $name = $_SESSION['CurrentUser'] ; 





}else{ 

    //if user not in a session PUTS THE USER IN GUESTS TABLE 
    $sqlt3 = mysqli_query($con,"REPLACE INTO active_guests (guest_ip,time_visited)VALUES ('".$guest_ip."','".$time."')"); 



} 

//execute querys 
$sqlt4 = mysqli_query($con,"DELETE FROM active_guest WHERE time_visited < ".$guest_timeout); 
$sqlt5 = mysqli_query($con,"DELETE FROM active_members WHERE time_visited < ".$member_timeout); 
$sqlt6 = mysqli_query($con,"SELECT guest_ip FROM active_guests"); 
$sqlt7 = mysqli_query($con,"SELECT username FROM active_members"); 
$online_guests = mysqli_num_rows($sqlt6); 
if(isset($_SESSION['CurrentUser'])){ 


$sqlt7 = mysqli_query($con,"SELECT username FROM active_members"); 

if($sqlt7->num_rows){ 
      while($row = $sqlt7->fetch_object()) 
      { 
      echo '<pre>',$row->username,'</pre>' ; 

      } 
      //$result->free(); 
     } 
}else{ 
    echo "Login to see members-online list"; 

} 
$online_members = mysqli_num_rows($sqlt7); 


?> 

// display results 
<div class="container"> 
<p>_________________________</p> 
<p>online Guests : <?php echo $online_guests ; ?></p> 
<p>online Members : <?php echo $online_members ; ?></p> 

</div> 
+0

Может ли колонка в сети быть нулевой? Если нет, он пытается вставить новую строку с операторами REPLACE INTO без заполнения онлайн-столбца и не сработает. –

+0

Что именно означает, что код не работает? Он не с ошибкой? –

+0

@MarvinFischer Спасибо, сэр –

ответ

0

Set колонка "онлайн" s "по умолчанию/Выражение" в нуль, мы надеемся, он будет работать!

+0

Спасибо. Работает сейчас. –

+0

рад, что он работает! : D –

Смежные вопросы