Как выполнить эхо с помощью PHP для этой команды MySQL

#php #mysql

#php #mysql

Вопрос:

Следующий код дает мне следующее:

 $getexpenses = "SELECT sum(expense_amount) FROM projects_expense WHERE project_id=$project_id";     
    $showexpenses = @mysqli_query ($dbc, $getexpenses); // Run the query.

    echo ' . $showexpenses . ';
  

Выдает мне результат

 ' . $showexpenses . '
  

вместо фактической суммы…

Я уверен, что это что-то простое, чего мне не хватает… Спасибо!

Комментарии:

1. кстати, повторение результата mysqli_query() будет не очень полезным. Вам нужно относиться к этому с чем-то вроде mysqli_fetch_assoc() ;

2. Хорошо — я понимаю, что такое одинарные / двойные кавычки… но ни то, ни другое не работает? Одинарные кавычки ничего не выводят, а двойные кавычки выводятся. .

3. Вам нужно прочитать мой комментарий…

4. Извините, я не видел, что вы оставили комментарий. Я попытался просто заменить _query на _fetch_assoc, но это не сработало

5. @user517593 Ваша проблема теперь исправлена?

Ответ №1:

echo " . $showexpenses . " будет работать для вас. Вам нужны двойные кавычки, а не одинарные.

Ответ №2:

Я добавил вызов mysqli_fetch_assoc($showexpenses) , чтобы сделать его полностью функциональным. Я также провел дезинфекцию $project_id , чтобы избежать инъекций, и использовал псевдоним, чтобы сделать сумму доступной через ассоциативный массив.

 $getexpenses = "SELECT SUM(`expense_amount`) as `sum_amount` FROM `projects_expense` WHERE `project_id`= ".intval($project_id);     
$showexpenses = mysqli_query ($dbc, $getexpenses);
$sums = mysqli_fetch_assoc($showexpenses);
$sum = $sums['sum_amount'];

echo $sum;
  

Мы также могли бы использовать mysqli_fetch_row вот так:

 $getexpenses = "SELECT SUM(`expense_amount`) FROM `projects_expense` WHERE `project_id`= ".intval($project_id);     
$showexpenses = mysqli_query ($dbc, $getexpenses);
$sums = mysqli_fetch_row($showexpenses);
$sum = $sums[0];

echo $sum;
  

Псевдоним больше не нужен, поскольку мы знаем, что первый столбец (0) совпадает.

ПРИМЕЧАНИЕ: вам, вероятно, также необходимо GROUP BY project_id , если вы хотите использовать SUM()

Ответ №3:

используйте

    echo $showexpenses;
  

или

 echo "My query is: {$showexpenses}";
  

Ответ №4:

В дополнение к ответу Nik, PHP обрабатывает строки по-разному в зависимости от того, используете ли вы одинарные или двойные кавычки вокруг них.

Одинарные кавычки интерпретируют текст как буквальный текст, за исключением ‘», который выводил бы одинарную кавычку, и », который выводил бы косую черту. По этой причине использование одинарных кавычек приведет к выводу имени вашей переменной вместо значения.

Примеры:

 CODE             | OUTPUT
----------------- ------------------
echo 't';       | t
echo 'r';       | r
echo '$foo';     | $foo
  

Двойные кавычки интерпретируют определенные escape-последовательности для специальных символов, а также интерпретируют переменные. Например, «n» завершает перевод строки, а » r» выводит возврат каретки. По этой причине при повторении «$myvariable» выводится значение вместо имени переменной.

Примеры:

 CODE             | OUTPUT
----------------- ------------------
echo "t";       | {tab space}
echo "r";       | {carriage return}
echo "$foo";     | bar
  

Подробнее:http://www.php.net/manual/en/language.types.string.php