PHP команда для вычисления процента строк MySQL

#php #mysql

#php #mysql

Вопрос:

Во-первых, я новичок в PHP, поэтому я все еще учусь. У меня есть PHP-программа для отображения количества строк в MySQL, которое часто меняется. Это эхо-сигнал, который я использую для отображения количества и процентов —

 echo"<tr><td>{$row['Name']}</td><td {$row['COUNT(tag_logs.tag_no)']}/75</td><td>{$row['(COUNT(tag_logs.tag_no)']}%</td></tr>
  

Первая функция подсчета работает просто отлично. Для второй итерации…

 {$row['(COUNT(tag_logs.tag_no)']}% 
  

… Я хотел бы разделить количество на 75 и умножить на 100.

Я попытался присвоить 75 строке, например —

 $perc = 75;
  

Я также попробовал несколько вариантов для выполнения только деления —

 {$row['(COUNT(tag_logs.tag_no)'/75]}%

{$row['(COUNT(tag_logs.tag_no)'/$perc]}%
  

Однако мне не повезло, так как я не уверен, куда подключить переменную. Это ошибка, которую я получаю —

Предупреждение: нечисловое значение, встречающееся в /Library/WebServer/Documents/count.php в строке 16

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

1. Что было не так в ответе, который я дал на вопрос, который вы впоследствии удалили?

2. Извиняюсь, поскольку я точно не помню, чтобы вы отвечали на мой вопрос в частности. Не могли бы вы напомнить мне о своем предыдущем ответе?

3. Я перепостил свой ответ.

Ответ №1:

Вам нужно разделить значение, которое вы читаете, за пределы строки, заключенной в кавычки. Попробуйте это:

 echo "<tr><td>{$row['Name']}</td><td>{$row['COUNT(tag_logs.tag_no)']}</td><td>" . round($row['COUNT(tag_logs.tag_no)'] / 75 * 100, 2) . "%</td></tr>";
  

Я бы также посоветовал вам переписать свой запрос с помощью псевдонима COUNT , например

 COUNT(tag_logs.tag_no) AS tag_cnt
  

так что вы можете просто ссылаться на это как $row['tag_cnt'] вместо $row['COUNT(tag_logs.tag_no)'] . Это также сэкономит вам время, если вы измените выражение в запросе позже, так как вам также не придется менять PHP.

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

1. Большое вам спасибо за ваш ответ. Я прошу прощения за то, что не удосужился ответить в прошлый раз. Если вы не возражаете, не могли бы вы очень кратко объяснить, что я сделал неправильно в своем первоначальном коде?

2. @OloOlo не беспокойтесь. Проблема с вашим исходным кодом заключалась в том, что вы делали все внутри строки, заключенной в кавычки, и вам приходилось выполнять математику вне кавычек. Включение чего {} -либо внутри строки, заключенной в кавычки, работает только для переменных.