#php #mysql
#php #mysql
Вопрос:
У меня есть скрипт, который я хочу разместить на панели мониторинга. SQL работает и группирует элементы в while, и он отображается на панели мониторинга правильно. Однако я также хочу, чтобы количество отображалось.
Итак, если SQL группируется, как я могу подсчитать строки, которые он возвращает, чтобы я мог повторить кол-во в моей таблице для каждой строки. Это мой код.
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "dbname";
$custid = $row['CustomerID'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql1 = "SELECT * FROM stock
JOIN hardware ON stock.HardwareID = hardware.HardwareID
WHERE stock.CustomerID = $custid GROUP BY stock.HardwareID";
$result1 = $conn->query($sql1);
if ($result1->num_rows > 0) {
// output data of each row
while($row1 = $result1->fetch_assoc()) {
echo "<tr>";
echo "<td>".$row1['Hardware']."</td>";
echo "<td></td>";
echo "</tr>";
}
}
?>
Итак, цель состоит в том, чтобы иметь строку
echo "<td></td>";
В нем есть переменная, которая показывает количество для каждой сгруппированной строки.
Комментарии:
1. MySQL или SQL Server? Пожалуйста, будьте более осторожны при выборе тегов.
2. Извините, исправил это.
Ответ №1:
вы можете использовать этот запрос, группа по запросу должна выбирать и предоставлять агрегацию, здесь я предоставил количество, если вам требуется какой-то соответствующий столбец, вы можете изменить его соответствующим образом…
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "dbname";
$custid = $row['CustomerID'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql1 = "SELECT stock.Hardwareid, count(*) as CountHardware FROM stock
JOIN hardware ON stock.HardwareID = hardware.HardwareID
WHERE stock.CustomerID = $custid GROUP BY stock.HardwareID";
$result1 = $conn->query($sql1);
if ($result1->num_rows > 0) {
// output data of each row
while($row1 = $result1->fetch_assoc()) {
echo "<tr>";
echo "<td>".$row1['Hardware']."</td>";
echo "<td></td>";
echo "</tr>";
}
}
?>
Комментарии:
1. Это работает очень хорошо. Мне просто нужно было внести одно изменение. $sql1 = «ВЫБРАТЬ запас. Hardwareid, аппаратное обеспечение. Аппаратное обеспечение, считайте (*) как количество аппаратного ОБЕСПЕЧЕНИЯ ИЗ запаса, ПРИСОЕДИНЯЙТЕСЬ К оборудованию НА складе. HardwareID = аппаратное обеспечение. HardwareID ГДЕ stock. CustomerID = $custid ГРУППА ПО запасу. HardwareID»; Но примет этот ответ. Спасибо