#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 не беспокойтесь. Проблема с вашим исходным кодом заключалась в том, что вы делали все внутри строки, заключенной в кавычки, и вам приходилось выполнять математику вне кавычек. Включение чего
{}
-либо внутри строки, заключенной в кавычки, работает только для переменных.