Сумма столбца mysql, умноженная на переменную в php

0

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

Я пытаюсь показать следующий результат через php.

(nb - history_points имеет конверсию от 10 000 до 1 доллара США)

$get_earned = mysqli_query($conn, "SELECT SUM(history_points) FROM activity_history") or die(mysql_error());

while($row = mysqli_fetch_array($get_earned)){
$total_points = $row['SUM(history_points)'];

В результате

SUM ( 'history_points')
 218903.0000

Затем я показываю этот результат, используя:

 php echo "$".convert(number_format($total_points)); 

Теперь проблема заключается в том, что он отображается как $0.0218 когда он должен читать $21.89

Я пробовал следующее, которое отображает $ 0, где 10000 - это точки для преобразования usd.

$get_earned = mysqli_query($conn, "SELECT SUM(history_points * 10000) FROM activity_history") or die(mysql_error());

Я совершенно не понимаю.

  • 2
    Что такое convert() ?
  • 3
    mysqli_query() не работает с mysql_error() . Разные API.
Показать ещё 2 комментария
Теги:

2 ответа

2

Когда вы меняете свой запрос на:

"SELECT SUM(history_points * 10000) FROM activity_history"

имя столбца также изменится, для чего вам нужно будет получить правильное значение в php.

$total_points = $row['SUM(history_points * 10000)'];

По предложению @pritaeas лучше используйте псевдоним.

"SELECT SUM(history_points * 10000) as ABC FROM activity_history"

$total_points = $row['ABC'];
  • 2
    Или используйте псевдоним: SELECT SUM(history_points * 10000) AS history_points_sum FROM activity_history
  • 0
    Да. Это было бы лучше. Обновил ответ.
Показать ещё 1 комментарий
0

попробуй это:

$get_earned = mysqli_query ( $conn, "SELECT SUM(history_points) FROM activity_history" ) or die ( mysql_error () );
$total_points = 0;
if ($get_earned !== false) {
    if ($row = mysqli_fetch_assoc ( $get_earned )) {
        $total_points = $row [0];
    }
}

// If you need to multiply the total by a variable in php, then simply multiply it:
if ($total_points !== 0) {
    $constant_var = 7;//just an example, it ur constant
    echo "$" . number_format ( $constant_var * $total_points, 2 );
}
  • 0
    Не работает - у меня отображается 0 долларов.
  • 0
    попробуйте отобразить это без number_format, echo "$" . ( $constant_var * $total_points ); и вы уверены, что получаете правильные значения SUM (history_points) из БД? откуда вы узнали, что это был 218903.0000?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню