2016-03-23 18 views
1

Tek bir sorunla karşılaştım. Bir prensibi vardır:mysql sorgu problemleri, Değerler nasıl görüntülenir?

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

Ana şey veritabanı cadı bu kod bulmak cihazlar devicegroups aynı "dizesini" olması. Ve tamam. Ancak tüm grupları, o gruba ait olan cihazlarla nasıl ayrı ayrı yazdırabilirim? Ya da bir grubu "" ile aynı dizeye sahip olan cihazlarla nasıl yazdırabilirim. Herhangi bir öneri veya smthng verebilir misiniz? :) çok teşekkür ederim.) Yorum yapamam ama $qid = $mysqli->query($qry);$qid = $mysqli->query($sql olmalıdır

+1

'$ row', sorgunuz tarafından döndürülen tüm değerleri içeren bir dizidir. Yani senin döngüsünde şöyle bir şey var: echo "$ row [groupId], $ row [groupName]" \ n; – user3741598

+1

Kurt wrore bu sorunu düzeltmek için: $ qid = $ mysqli-> query ($ sql); daha sonra $ row-> groupId, $ row-> groupName, $ row-> device_id, db –

+1

@ user3741598 değerlerini içerir, yolunuz fetch_assoc işleviyle çalışır, ancak Skyluk fetch_object işlevini kullanır –

cevap

2

); İngilizcem, çocuklar için üzgünüm

;