Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Получение баланса пользователя...
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Получение баланса пользователя...

Страниц (1): [1]
 

1. Jaugel - 25 Мая, 2017 - 07:46:41 - перейти к сообщению
Привет! Можешь помочь мне пожалуйста? Я пытаюсь сделать получение баланса пользователя...
Есть код:

PHP:
скопировать код в буфер обмена
  1. $mysqli = new mysqli($config['db_host'], $config['db_login'], $config['db_passw'], $config['db_name']);
  2. if ($bal = $mysqli->real_query("SELECT `balance` FROM `users` WHERE login = 'JaugelPon'")) {
  3.     $balance = floatval("$bal");
  4.     echo("Баланс: $balance руб.");
  5. }
  6. $mysqli->close();

При выполнение он возвращает "1"...
Структура таблицы, может там что-то не так?

CODE (SQL):
скопировать код в буфер обмена
  1. `id` bigint(20) NOT NULL,
  2. `login` char(32) DEFAULT NULL,
  3. `password` char(32) DEFAULT NULL,
  4. `balance` int(10) NOT NULL DEFAULT '0'

Пользователь JaugelPon есть, его баланс 3254.
При выполнении "SELECT `balance` FROM `users` WHERE login = 'JaugelPon'" в консоли PMA выводится баланс...


UPD: Починил вот так
PHP:
скопировать код в буфер обмена
  1. $mysqli = new mysqli($config['db_host'], $config['db_login'], $config['db_passw'], $config['db_name']);
  2. $result = $mysqli->query("SELECT * FROM users WHERE id=1");
  3. $row = $result->fetch_assoc();
  4. echo($row['balance']);
  5. $mysqli->close();
2. Vladimir Kheifets - 25 Мая, 2017 - 08:38:32 - перейти к сообщению
Посмотрите пример 3
http://php.net/manual/ru/mysqli....t.statements.php
3. Jaugel - 25 Мая, 2017 - 09:02:47 - перейти к сообщению
Vladimir Kheifets пишет:
Посмотрите пример 3

Он не работает... Мне выдаёт:
CODE (Error):
скопировать код в буфер обмена
  1. Fatal error: Call to a member function fetch_assoc() on a non-object in /home/webserver/www/index.php on line 68

А на линии 68 находится:
PHP:
скопировать код в буфер обмена
  1. while ($row = $res->fetch_assoc()) {
  2.     echo " id = " . $row['id'] . "\n";
  3. }


К тому-же мне нужно вывести баланс определённого пользователя а этот пример выводит баланс всех.
4. andrewkard - 25 Мая, 2017 - 09:45:01 - перейти к сообщению
Jaugel пишет:
UPD: Починил вот так

отлично. Цикл while тут не нужен,

$row = $result->fetch_assoc();

вернет первую строку набора.
5. Jaugel - 25 Мая, 2017 - 13:48:34 - перейти к сообщению
andrewkard пишет:

отлично. Цикл while тут не нужен,

$row = $result->fetch_assoc();

вернет первую строку набора.

Спасибо! Жалко что спасибки не могу ставить...

 

Powered by ExBB FM 1.0 RC1