-2

我从数据库中调用主题中帖子的信息。我习惯mysql_fetch_assoc()这样做。我有第一个帖子工作,但我不知道如何访问回复。所以我想如果我得到了该主题的帖子列表,我可以这样做。

这是我正在处理的代码示例:

$result1 = mysql_query("SELECT * FROM posts WHERE topic_id='" . $topicinfo['id'] . "'");
  while($row = mysql_fetch_assoc($result1)){
  $postinfo = print_r($row);
}

$topicinfo[]是关于该主题的一系列信息。

这段代码的问题是我想将结果保存在一个变量中,而不仅仅是自动打印出来。

这可能吗?

4

3 回答 3

1

你有没有尝试过:

while($row = mysql_fetch_assoc($result1)){ 
    $postinfo[] = $row; 
} 

这会将所有内容添加到$postinfo.

然而

您应该考虑从或切换mysql_*到两者之一- 它们都使编写安全代码变得容易。PDOmysqli_*

于 2012-09-15T19:09:22.320 回答
1

您要做的是将您从数据库中提取的所有结果推送到一个数组中。

$posts = array();
$result = mysql_query("SELECT * FROM posts ...");
while($row = mysql_fetch_assoc($result)){
    $posts[] = $row;
}

现在数组$posts将包含数据库中的所有结果。语法[]只是简写array_push()


使用旧的 MySQL 库

我建议你避免使用过时的 mysql_* 函数。强烈建议不要将它们用于新代码。更现代的替代品可用且维护得更好。相反,请考虑学习 准备好的语句,以及使用 PDO 或 MySQLi。当严格使用时,它们避免了繁琐的手动转义部分,因此变得更容易并且(作为副产品)更安全地使用。查看此 PDO 教程,了解一个很好的起点。

于 2012-09-15T19:10:29.743 回答
0

为了从数据库中存储多条记录,您需要定义一个数组变量并将这些记录推送到一个数组变量中,同时获取每条记录。

例如

    $resultset=array(); 
    while($row=msyql_fetch_assoc($res)) 
    {
    array_push($resultset,$row); 
    }

您可以通过 $resultset 变量访问完整的 sql 查询结果集。

于 2012-09-16T01:41:25.800 回答