Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL回音时_Php_Mysql_While Loop - Fatal编程技术网

Php MySQL回音时

Php MySQL回音时,php,mysql,while-loop,Php,Mysql,While Loop,大家好,我在一个动态的网站上工作,当我尝试回显结果时遇到了一些麻烦。 如果有人能帮助我,我将不胜感激 <?php $page = "SELECT * FROM Paginas"; $execute = $connect->query($page); $pagename = $execute->fetch_all(MYSQL_ASSOC); if ($connect->$page !== false){ $maximo = "SELECT MAX(ID) FROM

大家好,我在一个动态的网站上工作,当我尝试回显结果时遇到了一些麻烦。 如果有人能帮助我,我将不胜感激

<?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循环无法检索。

不要使用while,请使用foreach:

foreach($pagename as $row) {
    echo "<li><a href=#" . $row['Name'] . ">".$row['Name'] ."</a></li>";
}

您正在尝试为页面项生成菜单吗? 我不知道你想用马克西莫做什么?你是想看最后一页还是什么

如果您想生成菜单项,那么这应该可以更好地工作:

<?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>';
  }
}
?>

您的代码中有些东西没有多大意义,请将参数添加到您的while$i$page!==false尝试将查询字符串用作mysqli对象的属性

您也不应该使用MAX作为可靠的方法来知道何时获取了所有行,因为这可能会返回数字3,但是如果您仅拥有2条记录(例如),MAX并不准确,并且会为您提供错误的结果。如果修改或删除了一行,则表中的ID可能不连续

您应该使用fetch_assoc作为while的参数,或者使用fetch_all并使用foreach。在任何情况下,它都将在返回的所有行上循环,并在遍历每一行时停止循环。我用第一个

$page = "SELECT * FROM Paginas";
if ($execute = $connect->query($page)) 
    while ($row = $execute->fetch_assoc()) { 
        echo "<li><a href=#" . $row['Nome'] . ">".$row['Nome'] ."</a></li>";
    }
}
有关详细信息,请参阅每个功能的手册。我建议您仔细阅读每个函数并了解它们的实际功能,因为这将帮助您进一步构建应用程序


而$i$execute1{你的目标是什么?@Qirel I粘贴错误它将while改为while$row=$execute1然后你可以随意使用row这毫无意义,你正在将整数与布尔值进行比较,为什么需要执行第二个查询?从Paginas选择MAXID只返回一行,为什么你认为需要在第一名?值得注意的是^仅在$pagename等于array时有效-这将与ObjectsInDect分离,无需过于复杂化;-事实上,这是唯一一个认识到返回类型是object xD的答案
$page = "SELECT * FROM Paginas";
if ($execute = $connect->query($page)) 
    while ($row = $execute->fetch_assoc()) { 
        echo "<li><a href=#" . $row['Nome'] . ">".$row['Nome'] ."</a></li>";
    }
}