[英]PHP values don't UPDATE mysql table
在我的第一个php文件中,我从mysql获取结果并将其显示在表中。 每一列中的每一行值都必须具有“是”或“否”值。 添加新请求时,该值为“否”。 在“否”上,单击“我想打开另一个PHP”(zatvaranje_zadatka.php),并将id_zadatka和broj_zadatka发送到新的php文件中,表单形式为输入请求的解决方案。 在新的php文件中的Submit上,我想将mysql table1中的标志更改为“是”,并将解决方案写入mysql中的另一个表。 在第一个php中的简短说明:
while ($row = mysql_fetch_array($result))
{
echo '<tr><td>' .$row["id_zadatka"] .'</td>';
echo '<td><a href="zatvaranje_zadatka.php?id_zadatka='.$row["id_zadatka"].'">Zatvori</a></td>';
}
在zatvaranje_zadatka.php中,我有:
$id_zadatak = isset($_GET['id_zadatka']) ? $_GET['id_zadatka'] : '';
$br_zht = isset($_GET['broj_zadatka']) ? $_GET['broj_zadatka'] : '';
if($id_zadatak != '') {
echo '<form action="zatvaranje_zadatka.php?go.php" method="POST" id="zatv_zad" name="zatv_zad">';
echo '<fieldset>';
echo ' Broj zadatka je:';
echo '<legend>Rješenje zadatka</legend>';
echo ' <textarea id= "rjesenje" name = "rjesenje" rows="4" cols="50"></textarea>';
echo '</fieldset>';
echo '<button type="submit" id="submit_zatv" name="submit_zatv"> Zatvori zadatak </button>';
echo '</form>';
$rjesenje = isset($_GET['rjesenje']) ? $_GET['rjesenje'] : '';
$query2 = "INSERT INTO rjesenje(broj_zadatka, rjesenje_zadatka) VALUES ('$br_zht', '$rjesenje')";
$result2 = mysql_query($query2) or die ("Nije uspio zapis u bazu" .mysql_error());
}
输出到表rjesenje没什么。
这可能是由于输入错误。 您需要在表名和行名之间留一个空格。 (例如rjesenje_(broj_zadatka,rjesenje_zadatka))
但是更糟糕的是您的数据库容易受到SQL注入的攻击。 请看准备好的陈述
您的表单为method="POST"
并检查$_GET
变量。 因此错误rjesenje
为空。 这应该导致错误,但是您检查了是否设置了$_GET['rjesenje']
。 并非如此,因此变量的值不为空,如在检查它是否设置时所指定的那样。
$rjesenje = isset($_GET['rjesenje']) ? $_GET['rjesenje'] : '';
返回false => $ rjesenje =无
将行更改为以下内容:
$rjesenje = isset($_POST['rjesenje']) ? $_POST['rjesenje'] : '';
要解决该问题,请按照上面的建议将表单的请求方法更改为method="get"
或检查$_POST
变量。
一种检查这是否成立的方法,您可以在调试时尝试打印出变量:
print_r($_GET);
要么
print_r($_POST);
确保调试时遇到错误
error_reporting(E_ALL);
阅读更多: 如何在PHP中获得有用的错误消息?
另外,我建议您使用mysqli或pdo函数代替mysql。 由于mysql功能从php 5.5版开始不推荐使用,并且在php 7.0中已完全删除,并且因为mysql功能易于受到攻击。
所有这些代码看起来都很杂乱且可疑,但是您可以尝试进行测试以弄清最终的工作方式。
$id_zadatak = $_GET['id_zadatka']; // we set this via URL
//$br_zht = $_GET['id_zadatka']; // id i broj su ista stvar
$rjesenje = $_POST['rjesenje'];
if($id_zadatak != '') {
echo '<form action="zatvaranje_zadatka.php?id_zadatka='.$id_zadatak.'" method="POST" id="zatv_zad" name="zatv_zad">';
echo '<fieldset>';
echo ' Broj zadatka je:';
echo '<legend>Rješenje zadatka</legend>';
echo ' <textarea id= "rjesenje" name = "rjesenje" rows="4" cols="50"></textarea>';
echo '</fieldset>';
echo '<button type="submit" id="submit_zatv" name="submit_zatv"> Zatvori zadatak </button>';
echo '</form>';
if(isset($rjesenje))
{
$query2 = "INSERT INTO rjesenje(broj_zadatka, rjesenje_zadatka) VALUES ('$id_zadatak', '$rjesenje')";
$result2 = mysql_query($query2) or die ("Nije uspio zapis u bazu" .mysql_error());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.