大家好,我正在动态网站上工作,当我尝试回应结果时,我遇到了一些麻烦。 如果有人可以帮助我,我将非常感激。
<root>text1<child1></child1>text2<child2></child2>text3</root>
问题是我有3个ID页面,但它只显示其中2个。 我有
<?php
$page = "SELECT * FROM Paginas";
$execute = $connect->query($page);
$pagename = $execute->fetch_all(MYSQL_ASSOC);
if ($connect->$page !== false){
$maximo = "SELECT MAX(ID) FROM Paginas";
$execute1 = $connect->query($maximo);
$i = 0;
while ($i <= $execute1){
echo "<li><a href=#" . $pagename[$i]['Nome'] . ">".$pagename[$i]['Nome'] ."</a></li>";
$i++;
}
}
?>
所有数据库都正确填充,但while循环不会对其进行检索。
答案 0 :(得分:1)
你的代码中有些东西没有多大意义,特别是while
($i <= $execute1
将整数与布尔值进行比较)的参数和你对{{{{{ 1}}(if
尝试使用查询字符串作为mysqli对象的属性。)
您也不应该使用$connect->$page !== false
作为一种可靠的方式来了解您何时获取所有行,因为这可能会返回数字3,但如果您只有2条记录(例如) ,MAX()
并不准确,并会为您提供错误的结果。如果修改或删除了一行,则表中的ID可能不连续。
您应该使用MAX()
作为while的参数,或者使用fetch_assoc()
并使用fetch_all()
。在任何情况下,它都会遍历返回的所有行,并在迭代遍历每一行后停止循环。我将使用第一个。
foreach
有关详细信息,请参阅每个功能的手册。我建议您阅读每个功能并了解它们实际执行的操作,因为这有助于您进一步构建应用程序。
答案 1 :(得分:0)
不要使用while,使用foreach:
foreach($pagename as $row) {
echo "<li><a href=#" . $row['Name'] . ">".$row['Name'] ."</a></li>";
}
答案 2 :(得分:0)
您是否尝试为页面项生成菜单? 我不知道你要用$ maximo做什么?你试图得到最后一页什么?
如果你想生成菜单项,那么这应该更好:
<?php
$query = "SELECT * FROM Paginas";
$execute = $connect->query($query);
$result = $execute->fetch_all(MYSQL_ASSOC);
if (is_array($result) && !empty($result)){
foreach($result as $page){
echo '<li><a href="#'.$page['Nome'].'">'.$page['Nome'].'</a></li>';
}
}
?>