【发布时间】:2016-07-11 01:50:18
【问题描述】:
我遇到了一个问题。我有一个代码:
<?php
$mysqli = new mysqli('localhost', 'test', 'test123', 'testdb');
$sql = "
SELECT g.id as groupId, g.name as groupName, d.device_id
FROM librenms.devices as d
INNER JOIN librenms.device_groups as g
ON d.hostname LIKE CONCAT('%', mysql.SPLIT_STR(g.pattern, '\"', 2), '%')
WHERE g.pattern LIKE '_devices.hostname%'
ORDER BY g.id
";
$qid = $mysqli->query($qry);
if($qid->num_rows == 0){
die("no results from MySQL\n");
}else{
while($row = $qid->fetch_object()){ // each row
var_dump($row);
}
}
主要是这段代码在数据库中查找设备与设备组具有相同的“字符串”。没关系。但是如何使用属于该组的设备分别打印所有组?或者我如何使用在“”之间具有相同字符串的设备打印一组。?谁能给点建议或smthng?
【问题讨论】:
-
'$row' 是一个包含查询返回的所有值的数组。所以在你的循环中是这样的: echo "$row[groupId], $row[groupName]"\n;
-
库尔特首先解决了这个问题:$qid = $mysqli->query($sql);然后 $row->groupId, $row->groupName, $row->device_id 包含来自 db 的值
-
@user3741598 你的方式适用于 fetch_assoc 函数,但 Skyluk 使用 fetch_object 函数
标签: php mysql sql database mysqli