簡體   English   中英

PHP陣列未交付

[英]PHP Array not being delivered

我在名為“ gcmregid”的數據庫列中有一些數據。 我通過調用以下方式訪問此數據:

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

如果我錯了,請糾正我,但是由於result = array,這應該提供一個數組? 我從這里獲取了此邏輯: 在MySql中獲取資源ID#3錯誤

然后,我使用循環進行添加將很有幫助,例如:

$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 ?               
} 

它也不起作用。 任何輸入現在都將不勝感激...謝謝

我不確定出什么問題了,但是如果問題在於它返回的是單個項目:那是因為您每次迭代都會創建一個數組,而丟棄舊數組。 如果要收集所有行,請在循環外創建一個新數組,然后將結果添加到其中:

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

您應該考慮在如何命名函數方面做更多的工作。 如果您嘗試獲取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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM