2014-11-20 2 views
0

Мне нужно сделать вычисления на моем веб-сайте. У меня есть все параметры, но я не могу понять, как их объединить с одним результатом.простое вычисление mysql sums & php. Как сделать?

Пожалуйста, помогите мне растворить это!

Я получаю данные из базы данных MySQL: (Пробой)

<?php 
    $res = mysql_query('SELECT SUM(status) FROM ' . 'success_rate', $con); 
     if ($row = mysql_fetch_array($res, MYSQL_NUM)) 
     { 
      $rate = trim($row[0]); ?> 

<?php 
    $res = mysql_query('SELECT Count(*) FROM ' . 'user_registration', $con); 
     ?> 

Так я получаю 2 классический PARAMS

Что мне нужно иметь только один номер в конце концов. Это как вычисление должно работать:

((<?= $status ?>/<?= $2nd ?>)*100)-200 = result 

Оценил вашу помощь.

+1

Расширение MySQL является устаревшим и будет удален. Рассмотрим использование PDO или Mysqli. Дополнительная информация здесь: http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – Matheno

+1

'$ 2nd' - полная синтаксическая ошибка. почему такая извилистая структура? Почему бы вам не попробовать '$ answer = (($ status/$ second) * 100) - 200;'? –

+0

также '' 'никогда не закрывается ... – birdspider

ответ

1

Есть несколько проблем. Во-первых, амортизация mysql обесценивается. Вместо этого используйте mysqli. Когда вы это сделаете, вы меняете mysql_fetch_array($res, MYSQL_NUM) на mysqli_fetch_array($res).

Затем вам нужно закрыть скобки оператора if. У вас есть только открывающая скобка.

Этот второй фрагмент кода является синтаксическим errpr. Сделайте это: $result = (($status/$second)*100)-200

Помимо этого, я не знаю, что еще вы хотите, потому что вы не дали достаточно деталей.

0

Вам нужно получить второй запрос также:

$rate = 0; 
$count = 0; 

$res = mysql_query('SELECT SUM(status) FROM success_rate', $con); 
$row = mysql_fetch_array($res); 
$rate = $row[0]; 

$res = mysql_query('SELECT Count(*) FROM user_registration', $con); 
$row = mysql_fetch_array($res); 
$count = $row[0]; 

if ($count != 0) { 
    echo (($status/$count) * 100) - 200; 
} else { 
    echo 'Count was 0'; 
} 
  • Не используйте функции MySQL, так как являются устаревшими. Вместо этого используйте mysqli или PDO.

  • Используйте IDE для проверки ваших синтаксических ошибок в коде.

0

Если вы хотите, чтобы сократить код, возвращая результат с одним запросом, вы могли бы сделать это следующим образом:

$res = mysql_query("SELECT (((SUM(status)/(SELECT Count(*) FROM user_registration)) * 100) - 200) as result FROM success_rate") or die (mysql_error()); 

Заметим, однако: если второй параметр меньше, чем первый, вы получите отрицательное число в конце, потому что вы в итоге вычитаете 200.

Например: ЕСЛИ СУММА (статус) = 10 и Count (*) = 100, то ваш результат -190

((10/100)*100)-200 = -190 
Смежные вопросы