【发布时间】:2013-08-26 23:13:24
【问题描述】:
我对 PHP 中的递归函数有疑问。我调用函数并从数据库中获取行,然后将行放入数组中,然后再次调用函数以获取与行连接的其他行...问题是,array_unshift 仅保存第一行而其他不保存。问题是什么。谢谢你的回答。
public static function nahrejZpravy($responseTable, $responseId){
$return = Array();
$query = "SELECT * FROM Zpravy WHERE responseTable = '$responseTable' AND responseId = '$responseId'";
$result = query($query);
while($row = mysql_fetch_assoc($result)){
array_unshift($return, $row);
Zpravy::nahrejZpravy('Zpravy', $row['id']);
}
return $return;
}
【问题讨论】:
-
您应该添加 PHP 标签以获得更多帮助
-
你为什么需要那个,最后你想要一个数组中的所有信息?你不能只有
while($row = ....) { $rows[] = $row } return $rows。在您的情况下,您希望每次迭代以在 where 子句中添加下一个 id,直到按 id 选择所有行,这对我来说完全意味着您可以摆脱它? -
为什么?我有 Zpravy 数据库表。在这里,我有一些文本......并定义了,如果在此消息之前是哪个消息。所以我从数据库中获取数据作为消息,而不是我之前将它们作为消息......比我将它全部保存到数组中并在视图中我正在遍历数组并写入消息。
-
好吧,您将使用您找到的每个 $row['id'] 查询您的数据库。但是,如果你想坚持自己的方式,首先检查 $row 输出什么,它是什么类型的数组?也许您需要再次遍历它并通过 array_unshift 保存值。如果没有帮助,也许给我们 $row 和方法本身的 var_dump 会很好
-
不是每个 $row['id'],但仅适用于例如 ids 2、3、11、18。我会得到这个 id 的行,我想把它保存到一个数组中。为什么?我的代码有什么问题?为什么它只保存第一行?