Как установить значение 0, если SQL-запрос является недействительным или не находит результатов? - PullRequest
0 голосов
/ 24 октября 2011

Я использую следующий код, чтобы предварительно заполнить поле суммой из базы данных.

$amount = db_result(db_query('SELECT amount FROM {table} WHERE nid = %d', $fid));

$node->edit_user_fid = $amount;

Если запрос ничего не находит, он просто отображается пустым.Как я могу получить значение равным 0, если результатов нет?

Ответы [ 4 ]

2 голосов
/ 24 октября 2011
$node->edit_user_fid = ($amount) ? $amount : 0;

или записываемый как

if (!$amount) {
    $node->edit_user_fid = 0;
}

или если вы уверены, что $ amout является числовым (и оно должно быть), используйте

$node->edit_user_fid = intval($node->edit_user_fid);
1 голос
/ 24 октября 2011

если значение равно int, вы можете использовать приведение типа intval () или (int), чтобы вы всегда получали числовое значение.

0 голосов
/ 01 февраля 2013

Руководство по PHP

-.- вы можете использовать === false или === 0, чтобы проверить, является ли он нулевым или ложным (тип и значение теста) нет необходимости проверять false и сбрасывать в 0 или устанавливать тип переменной

0 голосов
/ 25 октября 2011

db_result() возвращает FALSE, когда не может найти ни одной строки таблицы, соответствующей выполняемому запросу. Просто приведите возвращаемое значение к целому числу.

$node->edit_user_fid = (int) db_result(db_query('SELECT amount FROM {table} WHERE nid = %d', $fid));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...