2012-11-12 5 views
0

Прежде чем вы предполагаете, что я не установил соединение с базой данных, я это сделал. единственная часть кода, который не обновляется, - это пустые утверждения.База данных не обновляет строку

Все значения могут быть эхоподавлены правильно, это просто, что запрос не работает.

Это находится в каталоге конфигурации и назван stuff.php

$user = $mysqli->real_escape_string($_SESSION['username']); 
$user_query = "SELECT * FROM users WHERE username = '$user'"; 
$result = $mysqli->query($user_query); 
$row = $result->fetch_assoc(); 
$referrer = $row['ref']; 
$refearn = $row['refearn']; 

verify.php

include('config/stuff.php'); 
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { // Get Real IP    
    $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; 
} else { 
    $IP = $_SERVER['REMOTE_ADDR']; 
} 

if ($IP=="external server ip here") { 
     if (!empty($referrer)){ 
      $mysqli->query("UPDATE users SET points=points+10, refearn = refearn+10 WHERE username='".$referrer."'") or die(mysqli_error($mysqli)); 
     } 
     $mysqli->query("UPDATE users SET points=points+".$earnings.", completed = completed+1 WHERE username='".$subid."'") or die(mysqli_error($mysqli)); 
}  
+0

есть ли у вас какие-либо ошибки? или, можете ли вы попробовать получить результат этого запроса? »Пользователи UPDATE SET points = points + 10, refearn = refearn + 10 WHERE username = '". $ referrer. "'" 'и проверьте, что в phpmyadmin вручную - если это работает. – Prakash

+0

Нет никакой ошибки из того, что я могу сказать. Я могу подтвердить, что он работает в PHPmyadmin, я сейчас работаю над эхом. У меня сейчас есть мозг, как я могу откликнуться на запрос? – Stax

+0

Так что это обновление вашего просто пытается вывести ответ? –

ответ

1

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

Пример:

$getPoints = mysql_query("SELECT points FROM table WHERE condition"); 
$points = mysql_result($getPoints, 0, "points"); 

$update = mysql_query("UPDATE table SET points=" . ($points+10) . " WHERE condition"); 

Надежда, что помогает. Еще одно соображение. Зачем использовать структуру endif, если вы не нарушаете теги PHP для отображения содержимого?

+0

Я не думаю, что это будет другое, но ... Мой синтаксис уже правильный, поэтому я не понимаю, почему он не будет работать. – Stax

0

попробовать это:

$mysqli->query("UPDATE `users` SET `points`=`points`+10, `refearn` = `refearn`+10 WHERE `username`='".$referrer."'") or die(mysqli_error($mysqli)); 

Надеется, что это помогает. Я думаю, что mysql-запрос может принимать их как постоянные, а не как строки mysql. Попробуйте это

+0

: (Нет, не работает. – Stax

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