将mysql数据推入数组

时间:2012-06-11 15:13:35

标签: php mysql arrays

好的,我需要将从几个不同表中获取的数组推送到一个新数组中。我以为这会做到,但事实并非如此。一个警告说array_push()期望参数1是一个数组。可能有一些非常简单的事我做错了但是我对所有这些PHP的东西都不熟悉所以不知道。 我认为参数1是一个数组,因为数组是从数据库中获取的。

以下是代码:

$newsfeed = array("apple");

$news = mysql_query("
SELECT * FROM news
UNION ALL
SELECT * FROM feature ORDER BY timestamp DESC LIMIT 1
")or die(mysql_error());

while($row = mysql_fetch_array($news))
{

    $artist = mysql_query("
    SELECT * FROM members WHERE artist='Y'
    ORDER BY timestamp DESC LIMIT 2
    ")or die(mysql_error());

    while($row1 = mysql_fetch_array($artist))
    {
        array_push($newsfeed, $row['title'], $row1['artistname']);
    }
}
echo($newsfeed);

3 个答案:

答案 0 :(得分:2)

$ row ['title']不是数组..它是数组$ row的元素。

如果您想将所有'title'和'artistname'存储到数组中,您可以这样做

$artists = array();
array_push($artists, $row['title'], $row1['artistname']);
print_r($artists);

如果您想将'title'和'artistname'分组

$artists = array();
$artist_data = array('title' => $row['title'], 'artistname' => $row['artistname'])
array_push($artists, $artist_data);
print_r($artists);

答案 1 :(得分:1)

查看array_push的文档。第一个参数必须是您要推入的数组的名称。

array_push($myArray, $row['title'], $row1['artistname']);

$myArray现在会有$row['title']$row1['artistname']

你在while循环中也缺少大括号。您只能在其后只有一行时省略大括号。无论如何,拥抱牙箍仍然是一种很好的做法。

如果您想查看数组的值,则应使用print_r代替echo

如果要打印出数组的元素,则需要循环遍历它们。然后,当您只打印数组的一个元素时,可以使用echo。您无法将其用于整个阵列,也只能打印array。有关如何执行此操作的示例,请参阅foreach文档:

$arr = array("one", "two", "three");
foreach ($arr as $value) {
    echo $value;
}

答案 2 :(得分:0)

你能做点什么。

$artists=array();
$artists[ $row['title'] ] = $row1['artistname'];

或者我误解了这个问题?