[英]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.