2016-03-23 10 views
1

私は1つの問題に直面しました。私はコードを持っています:mysqlクエリの問題、値を表示する方法

<?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); 
     } 
} 

主なことは、このコードがデバイスグループと同じ "文字列"を持っていることです。そしてそれは大丈夫です。しかし、どのグループに属しているデバイスで、すべてのグループを個別に印刷することができますか?または、同じ文字列を持つデバイスでグループを1つでも印刷する方法は? "誰かが何か提案やスムージングをすることができますか? :) どうもありがとうございます。

私の英語、男性のため申し訳ありません

;)

+1

'$ row'は、クエリによって返されたすべての値を含む配列です。だからあなたのループのようなもの:echo "$ row [groupId]、$ row [groupName]" \ n; – user3741598

+1

Kurtはこれを最初に修正しました:$ qid = $ mysqli-> query($ sql); $ row-> groupId、$ row-> groupName、$ row-> device_idにはdbの値が入っています –

+1

@ user3741598あなたの方法はfetch_assoc関数で動作しますが、Skylukはfetch_object関数を使用します –

答えて

2

私がコメントすることはできませんが、$qid = $mysqli->query($qry);$qid = $mysqli->query($sqlする必要があります)。