我现在有了这个代码。
$select_links = "SELECT * FROM $table";
if (isset($_POST['link'])) {
if ($_POST['link'] == '0'){
}}
else {
$links = $conn->prepare($select_links);
$links->execute();
$links->setFetchMode(PDO::FETCH_ASSOC);
while($row1 = $links->fetch())
{
echo $row1['name'];
};
}
当我在没有_POST的情况下加载页面时,echo $row1['name'];
有效。但是,如果我发送POST link=1
它不起作用。为什么?只有在POST包含link=0
时,我才能使它不起作用。
P.S。它在我转向DBO之前有效。
答案 0 :(得分:1)
不是“DBO”,而是您编写的代码 虽然我只是在重新格式化之后才设法得到它的含义。 在这里:
$select_links = "SELECT * FROM $table";
if (isset($_POST['link'])) {
if ($_POST['link'] == '0'){
// do nothing
}
} else {
$links = $conn->prepare($select_links);
$links->execute();
$links->setFetchMode(PDO::FETCH_ASSOC);
while($row1 = $links->fetch())
{
echo $row1['name'];
}
}
因此,当您设置POST link = 1时,会通过isset($_POST['link'])
检查,然后没有其他代码被执行。
很可能你的意思是这样的
if (!empty($_POST['link'])) {
$select_links = "SELECT * FROM $table";
$links = $conn->prepare($select_links);
$links->execute();
$links->setFetchMode(PDO::FETCH_ASSOC);
while($row1 = $links->fetch())
{
echo $row1['name'];
}
}
如果您需要其他逻辑 - 没问题,请编写您想要的任何行为。
只需阅读手册并测试您尝试的所有内容
......但是没关系,这个对于一个新人来说可能很难:
if (!isset($_POST['link']) || $_POST['link']) {
表示
IF $_POST['link'] is NOT set OR $_POST['link'] NOT equal to 0