我必须按两次提交按钮(PHP)
此代码用于在按钮激活后将数据放入数据库,然后将其取下并替换为(问题保存!)。问题是我试了两次才让它消失(按钮)$numofrow用于验证操作是否曾经执行过(提交按钮的操作)。问题不在于数据库、查询等,而在于按钮。谢谢你抽出时间 这是我的代码:我必须按两次提交按钮(PHP),php,Php,此代码用于在按钮激活后将数据放入数据库,然后将其取下并替换为(问题保存!)。问题是我试了两次才让它消失(按钮)$numofrow用于验证操作是否曾经执行过(提交按钮的操作)。问题不在于数据库、查询等,而在于按钮。谢谢你抽出时间 这是我的代码: if(isset( $real_domaine)){ $tt = "SELECT*FROM uniwix.table0 WHERE id= '$id' "; $rr = mysqli_query($database,$tt);
if(isset( $real_domaine)){
$tt = "SELECT*FROM uniwix.table0 WHERE id= '$id' ";
$rr = mysqli_query($database,$tt);
while($rows = mysqli_fetch_assoc($rr)){
[rows call...]
$md = "SELECT*FROM uniwix.table1 WHERE usern='$us' and question='$sujet'";
$ao = mysqli_query($database,$md);
$numofrow = mysqli_num_rows($ao);
if($numofrow == 0){
echo '<form action="" method="POST">
<input type="submit" name="sauvegarder" value="Save the question"/>
</form>';
if(isset($_POST['sauvegarder'])){
$qu = "INSERT INTO database (usern,question) VALUES('".$us."','".$sujet."')";
$sm = mysqli_query($database,$qu);
}
}else{
echo 'Question saved!';
}
//end of while loop
}
// end of if(isset( $real_domaine))
}
if(isset($real\u domaine)){
$tt=“从uniwix.table0中选择*,其中id='$id';
$rr=mysqli_查询($database,$tt);
而($rows=mysqli\u fetch\u assoc($rr)){
[行调用…]
$md=“从uniwix.table1中选择*,其中usern='$us'和question='$sujet';
$ao=mysqli_查询($database,$md);
$numorrow=mysqli_num_rows($ao);
如果($numorrow==0){
回声'
';
如果(isset($_POST['sauvegarder'])){
$qu=“插入数据库(usern,question)值(“$us.”,“$sujet.”);
$sm=mysqli_查询($database,$qu);
}
}否则{
回音“问题已保存!”;
}
//while循环结束
}
//if结束(isset($real_domaine))
}
问题不在于数据库、查询等,而在于按钮
按钮几乎是被动的,它所做的只是在按下时将数据发送到服务器。错误在于PHP代码的逻辑(缺少逻辑)
当脚本第一次运行时,$numorrow
为0
。它运行使用按钮生成表单的echo
,然后检查是否设置了$\u POST['sauvegarder']
。当然,它没有设置,因为当第一次加载页面时,会使用GET
方法
用户按下按钮,使用POST
提交数据,代码再次运行$numofrow
仍为0
(尚未在数据库中插入任何数据),再次显示表单,但这次设置了$\u POST['sauvegarder']
,并将从浏览器接收的数据保存到数据库中
您需要重新思考页面的逻辑
而且,表单是空的。也许它是有效的,但这不是正确的方式写表格。要发送到服务器的输入字段必须保留在表单中
更重要的是,您的数据库代码是SQL注入的候选者不使用字符串连接生成查询。使用。另外请阅读。HTML与此无关。错误在于逻辑。我想知道$real_domaine是什么。所以,当在数据库中找不到用户和问题时,它会显示表单。你呼应“问题已保存!”当它已经在数据库中时,“问题已保存!”应为插入查询下的回显,当前回显为“问题已保存!”应更改为“问题已保存”