2015-11-26 121 views
1

我必须把以json_encode specifed MySQL表列PHP柱从MySQL得到所有值json_encode

$fromdate  = $_GET['fromdate']; 
$getrezhiredh = safe_query(" 
    SELECT rezhour FROM rezhiredhours 
    WHERE rezdate = '".$fromdate."' ORDER BY rezhour 
"); 

$rows = array(); 
while($r = mysql_fetch_assoc($getrezhiredh)) { 
    $rows[] = $r; 
} 

print json_encode($rows); 

的所有值有了上面的代码,我有一个问题。此代码仅在表格中返回结果时,我们才有一行含选定数据。在这种情况下json_encode()的结果是

[{ “rezhour”: “1”}]

但是,当表有多个行与选定的数据结果不返回任何东西,但

[] 

如何把json_encode()从表中选择的所有值?


编辑:

我只是想知道为什么当我们在表中选择的数据更多的行的情况下,结果并不如下面的例子

[{“rezhour”给予: {[0] => “1” 时,[1] => “4”}]

代替在结果,我们有 “[]”


谢谢你提前。

+0

这是奇怪的,它应该工作。尝试'var_dump($ rows)',看看它有多行时实际包含的内容。 – apscience

+0

感谢您的评论。 仍然错误。 var_dump($ rows)只有当我们有一行数据时才给出正确结果,否则返回数组(0){} – X9DESIGN

回答

0

尝试改变从mysql_fetch_assoc

mysql_fetch_assoc($getrezhiredh) 

mysql_fetch_object($getrezhiredh) 
+0

我得到和上面相同的结果。 []当我们有多行数据时 – X9DESIGN

+0

删除$ rows = array(); – davejal

+0

php错误 - “未定义的变量:第X行的(...)行” – X9DESIGN

0

结果是不同的比你想象的。每一行或多或少是这样的:

array(1) 
    "rezhour" => "1" 

所以你访问该数据是这样的:

while($r = mysql_fetch_assoc($getrezhiredh)) { 
    $rows[] = $r["rezhour"]; 
}