PHP数组未送达

时间:2015-01-27 13:47:38

标签: php mysql

我在数据库列中有一些名为" gcmregid"的数据。 我通过调用:

来访问这些数据
public function getAllUsers() {
    $r = mysql_query("select * FROM table");
    while ($row = mysql_fetch_array($r)) {
    $result = array(
    'gcmregid' => $row["gcmregid"]
    );
    }
    return $result;
}

如果我错了,请纠正我,但由于结果=数组,这应该提供一个数组? 我从这里采用了这个逻辑:Getting Resource id #3 Error in MySql

。然后我使用循环会很有帮助,例如:

$userCount = $db->getUserCount(); // counting said table
$registation_ids = array(); // again create array
for($i=0; $i < $userCount; $i++)
{
    $gcmRegId = $db->getGCMRegID($selUsers[$i]);    
    $row = mysql_fetch_assoc($gcmRegId);        
    //Add RegIds retrieved from DB to $registration_ids
    array_push($registation_ids, $row['gcmregid']); // this creates an array consisting of gcmregid s ?               
} 

它也不起作用。 任何输入现在都会非常感激...... 感谢

2 个答案:

答案 0 :(得分:2)

我不确定出了什么问题,但如果问题是它返回了一个项目:那是因为你每次迭代都会继续制作 new 数组,丢弃旧的数组。如果要收集所有行,请在循环外部创建一个新数组,然后将结果添加到它:

public function getAllUsers() {
    $r = mysql_query("select * FROM table");
    $result = array();
    while ($row = mysql_fetch_array($r)) {
    $result[] = array (
    'gcmregid' => $row["gcmregid"]
    );
    }
    return $result;
}

答案 1 :(得分:0)

您应该考虑更多地了解如何命名您的功能。如果您尝试获取gcmregid,则该方法不应该说getAllUsers。无论如何,您是否尝试过以下方法:

public function get_gcmregid() {
    $query_result = mysql_query("select * FROM table");
    $row = mysql_fetch_array($query_result);
    return $result[0]['gcmregid'];
}

或者如果你想一次性获得所有gcmregid

public function get_gcmregid() {
    $query_result = mysql_query("select * FROM table");
    $i=0;
    while ($row = mysql_fetch_array($query_result)){
         $result[$i++] = $row['gcmregid'];
    }
    return $result;
}