我想显示“已批准”列为“否”的所有条目的列表,然后在其旁边放置一个按钮,单击该按钮会将“已批准”更改为"is"。我通过代码检查器运行了这个并修复了一些括号等问题。现在它告诉我没有错误,所以其他东西不起作用。这可能是我遗漏的一些小东西(我希望)。任何人都可以帮助我找到/理解其中的哪一部分是不正确的......和/或是否有更好的方法来实现我想要的?
<?php
//select the database to write to
$unapprovedsires = mysql_query("SELECT * FROM nominatedsires WHERE approved = 'no'");
//While loop to cycle through the rows
while($row = mysql_fetch_assoc($unapprovedsires)){
$sirename = $row['sirename'];
echo $sirename;}
?>
<ul class="admin-fields">
<?php
foreach($row as $field){
if(empty($field)){
echo "....";
}
print '<li>' .$field.' </li>';
}//End For Each Loop
//print $sirename;
?>
</ul>
<p>
<?php
if(isset($_POST['approve'])){
mysql_query("UPDATE nominatedsires SET approved = 'yes' WHERE sirename = '.$sirename.'") or die ("Something went wrong");
}
?>
<ul>
<li>
<form method="post">
<input type="hidden" name="sirename" value="$sirename" />
<button name="approve" id="approve" type="submit">Approve Sire</button>
</form>
</li>
</ul>
最佳答案
正如我在评论中提到的,您需要使用 echo 语句将 $sirename
包装在 PHP 标记中。您也没有将 $_POST['sirename']
传递到脚本中。否则,它默认为 mysql_fetch_assoc()
中的原始 $sirename
。
警告:您设置脚本的方式很容易受到注入(inject)攻击。这只是一个向您展示如何传递变量的示例。请参阅:How can I prevent SQL injection in PHP?
<?php
//select the database to write to
$unapprovedsires = mysql_query("SELECT * FROM nominatedsires WHERE approved = 'no'");
//While loop to cycle through the rows
while($row = mysql_fetch_assoc($unapprovedsires)){
$sirename = $row['sirename'];
echo $sirename;}
?>
<ul class="admin-fields">
<?php
while($row = mysql_fetch_assoc($unapprovedsires)){
if(empty($row['sirename']))
echo "....";
else
print '<li>' .$row['sirename'].' </li>';
}
//print $sirename;
?>
</ul>
<p>
<?php
if(isset($_POST['approve'])){
$sirename = mysql_real_escape_string($_POST['sirename']);
mysql_query("UPDATE nominatedsires SET approved = 'yes' WHERE sirename = '$sirename'") or die ("Something went wrong");
}
?>
<ul>
<li>
<form method="post" method="<?php echo $_SERVER[PHP_SELF]; ?>">
<input type="hidden" name="sirename" value="<?php echo $sirename; ?>" />
<input type="submit" name="approve" id="approve" value="Approve Sire" />
</form>
</li>
</ul>
关于php - 通过表单批准行 - 获取空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21291535/