2015-10-30 100 views
0

我想回显用户表中的所有ID,但是我无法使其工作。我尝试了下面的内容并搜索了一些堆栈,但我找不到正确的答案。从表中获取所有的ID MYSQL

 $query = $db->query("SELECT * FROM users"); 
     $num = $db->num($query); 
     while($array = $db->assoc($query)) { 
      $active_ids = $array['id']; 
     } 

     $query = "SELECT u.username, u.habbo, count(*) AS n 
     FROM users u, timetable tt 
     WHERE u.id=tt.dj and u.id IN (".$active_ids.") 
     GROUP BY tt.dj"; 

     $result = $mysqli->query($query); 

     if ($result->num_rows > 0) { 
      while($row = $result->fetch_assoc()){ 
       echo "<tr id='uren-table-row'>"; 
       echo "<td width='60px'><div style='height:50px;padding-top:25px;overflow:hidden;float:left;margin-top:-25px;'><img style='margin-top:-28px;float:left;' src='http://habmoon.org/moonstream/dj?habbie={$row['habbo']}&amp;head_direction=3&amp;direction=2&amp;size=b&amp;hb=img&amp;gesture=sml'></div></td>"; 
       echo "<td width='200px' style='padding:0 15px;'>", $row['username'] ,"</td>"; 
       echo "<td style='padding:0 15px;'>Heeft <b>", $row['n'] ,"</b> Uur gedraait deze week</td>"; 
       echo "</tr>"; 
      } 
     } 
+0

当您运行此代码时会发生什么? – nicomp

+0

它只显示1结果,但我需要回显所有结果的@DelmerNicholson – Christian

+0

执行'var_dump($ query)'。结果是什么。 – Terminus

回答

2

您需要使$active_ids成为CSL。目前,您在每次迭代时都会覆盖ID,因此您只能获得最后一个ID。您还需要用逗号分隔,所以请使用implode。请尝试:

while($array = $db->assoc($query)) { 
      $active_ids[] = (int)$array['id']; 
} 
$active_ids = implode(',', $active_ids); 
+0

你仍然需要定义一个'$ active_ids'变量,否则它会抛出一个通知。 – divix

+0

@divix不适用于动态数组赋值。演示:https://eval.in/460411串联,'。='会抛出通知,因为它试图加入先前未定义的字符串。 – chris85

+1

够公平,我的不好。但我仍然喜欢顶端的变量定义:) – divix

3

从您的查询中移除count(*) AS n。这将导致MySQL只返回1条记录。

你也有一些错误在你的第一行:

$active_ids = array(); 
while($array = $db->assoc($query)) { 
    $active_ids[] = $array['id']; 
} 

你忘了定义$active_ids并添加[]

+0

它不计数的ID ..因为当我使用$ active_ids ='1,3,4';它完美的工作,但我需要它自动化。 – Christian

+0

对不起,但我不明白它基督徒,如果你将从查询中删除'count(*)AS n',那么你将得到所有相对记录。如果你不想统计它们,那么不要附加我的第二个代码。 – divix

+0

http://stackoverflow.com/questions/33388764/how-can-i-make-a-table-while-fetch-assoc这就是计数的ID – Christian