php - php嵌套函数p
问题描述
你好,我不知道为什么这段代码对我不起作用。我想创建 ul 并且在 ul 内部我想从我的 db 中有一些类别的 li 元素......然后我想用一些 li 元素创建另一个 ul foreach li 元素,其中包含我的 db 中的子类别。当我在索引页面中调用 selectareCategorii() 时,我首先看到这一行的元素 $this->selectareSubcategorii($categorii["id_categorie"]) 所以从第二个函数然后是第一个函数的元素,我不知道为什么。
公共函数 selectareCategorii() {
$query = mysqli_query($this->con,"SELECT * FROM categorii");
while($categorii = mysqli_fetch_array($query)) {
echo "<ul>
<li>$categorii[nume_categorie]".
$this->selectareSubcategorii($categorii["id_categorie"])
."</li>
</ul>";
}
}
private function selectareSubcategorii($id) {
$query = mysqli_query($this->con, "SELECT * FROM subcategorie WHERE categorie_id ='$id'") OR die(mysqli_error($this->con));
while($subcategorii = mysqli_fetch_array($query)) {
echo "<li>$subcategorii[subcategorie_nume]</li>";
$this->selectareSubcategorii1($subcategorii['subcategorie_id']);
}
}
我想要这个结果`
- 从第一个函数->selectareCategorii()
- 从第二个功能-> selectareSubcategorii($id)
我在我的页面中得到的结果是:
- 从第一个函数->selectareCategorii()
所以我不明白为什么第二个函数首先运行然后第一个函数运行的内容......在我的脑海中:) 我认为第一个函数运行的内容然后找到 $this->selectareSubcategorii($categorii["id_categorie"])并运行该函数的内容,然后返回并运行第一个函数的最后几行代码
解决方案
要执行您想要的操作,您需要保存id_categorie
第一个循环中的所有值,然后使用这些值调用selectareSubcategorii()
. 尝试这个:
$query = mysqli_query($this->con,"SELECT * FROM categorii");
$id_categorie = array();
echo "<ul>";
while($categorii = mysqli_fetch_array($query)) {
echo "<li>$categorii[nume_categorie]</li>";
$id_categorie[] = $categorii["id_categorie"];
}
foreach ($id_categorie as $id) {
$this->selectareSubcategorii($id);
}
echo "</ul>";
推荐阅读
- c# - 在将数据库数据存储到 C# 对象类中时无法编写 LINQ to SQL 查询
- android-layout - 如何在android studio中做小的Rating Bar?
- java - 如何设置 JavaFX 对话框高度?
- reactjs - 问 - this.props.onPress 不是一个函数。(在 'this.props.onPress(e)' 中,'this.props.onPress' 是 "this.page1")
- ios - 为什么我的 WKWebview 或 PDFViewer 仅适用于 iPhone XR 模拟器
- kubernetes - 与服务背后的所有 Kubernetes pod 通信
- python - 如何列出 db 对象中的所有实体类型?
- excel - 如何导入第二个工作簿,获取其工作表并将其粘贴到我当前的工作表
- python - 尝试更新其值为列表的字典中的值时出错
- c++ - C++ - 多线程需要更长的线程