-1

我希望在 Array 变量中为数据库中的每一行添加一个__ 。
在我的 testTable 中,我目前有 2 行,尽管在运行此代码时只有一个被“推送”到数组中。

$result = mysql_query("SELECT * FROM testTable ORDER BY dateAdded DESC");
while($row = mysql_fetch_array($result)) {
    $Array = array();
    array_push($Array, array('id' => $row['id'], 'title' => $row['title'], 'desc' => $row['desc'],  'image' => $row['image'], 'dateAdded' => $row['dateAdded']);
}

print_r($Array);

输出:

Array ( [0] => Array ( [id] => 2 [title] => test test test [desc] => text text text [image] => http://domain.com/sampleImg.png [dateAdded] => 2012-06-13 15:58:43 ) )    

例如,当我试图呼应标题时,它起作用了……像这样:

while($row = mysql_fetch_array($result)) {
    echo $row['title'];
}
4

2 回答 2

5

$Array应该$productsArray并且应该在你的循环之外

$result = mysql_query("SELECT * FROM testTable ORDER BY dateAdded DESC");
$productsArray= array();
while($row = mysql_fetch_array($result)) {
    array_push($productsArray, array('id' => $row['id'], 'title' => $row['title'], 'desc' => $row['desc'],  'image' => $row['image'], 'dateAdded' => $row['dateAdded']);
}

print_r($productsArray);
于 2012-06-19T15:43:05.407 回答
2

虽然@JohnConde 的答案会起作用,但如果您像这样构建代码会更好:

$result = mysql_query("SELECT id, title, `desc`, image, dateAdded FROM testTable ORDER BY dateAdded DESC");
$productsArray = array();
while ($row = mysql_fetch_array($result)) {
    $productsArray[] = $row;
}

print_r($productsArray);

SELECT *如果您只打算使用某个字段子集,那就太浪费了。重构一个要添加到的数组也是浪费的$productsArray,它本质上等于返回的数组mysql_fetch_array()

编辑: 还值得注意的是,mysql不再建议在新应用程序中使用该驱动程序。我建议您改用PDOMySQL Native Driver

于 2012-06-19T15:47:35.363 回答