2015-01-22 4 views
0

У меня есть php-форма, которая представляет MySQL, и вторую форму php, которая использует значение, хранящееся в первой.Приращение целого числа без анализа текста

Наибольшее значение в базе данных по booth_member в настоящее время 3. В приведенном ниже примере, = $ booth_member должна быть равна 4, но вместо этого всегда возвращает 2.

$membersql = $mysqli->query("SELECT booth_member FROM users WHERE booth_number = '{$user['booth_number']}' ORDER BY booth_member DESC LIMIT 1"); 
$booth_member = $membersql + 1; 
echo $booth_member; 

Если я пытаюсь и эхо $ membersql , он просто возвращает «массив».

+10

Пожалуйста, проверьте 'mysqli' документации о том, как извлекать данные из запроса. – zerkms

+0

@zerkms Link? Источник? Фикс? Что-нибудь полезное? – WolfInd

+0

Вам нужно «fetch()« результат (ы), прежде чем вы сможете их использовать. http://php.net/manual/en/mysqli-result.fetch-assoc.php –

ответ

1

mysqli::query возвращает объект Ressource, поэтому она не работает. Некоторый код, чтобы исправить это:

$membersql = $mysqli->query("SELECT booth_member FROM users WHERE booth_number = '{$user['booth_number']}' ORDER BY booth_member DESC LIMIT 1"); 
if($membersql->num_rows < 1) 
{ /* error handling goes here */ } 
else 
{ 
    $res_array = $membersql->fetch_assoc(); // save result as array 
    $booth_member = $res_array["booth_member"] + 1; 
    echo $booth_member; 
} 

Обязательно, чтобы избежать $user['booth_number'] до того, чтобы предотвратить SQL-инъекции.

Для получения дополнительной информации, проверьте mysqli::query документацию :)

-2

Это потому, что это массив. Я считаю, что вы пытаетесь сделать:

$booth_member = $membersql['booth_member'] + 1; 
+3

Можете ли вы просто сделать '$ membersql ['booth_member']' без первого вызова 'fetch()'? Довольно уверен, что вы не можете этого сделать. –

0

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

$result = $mysqli->query("SELECT booth_member FROM users WHERE booth_number = '{$user['booth_number']}' ORDER BY booth_member DESC LIMIT 1"); 

$booth_member = $result->fetch_object('booth_member'); 
++$booth_member; 
echo $booth_member; 
Смежные вопросы