簡體   English   中英

通過PHP更新數據庫

[英]Updating Database through PHP

一直不懈地努力。 搜索了數十種威脅,沒有運氣。 我的代碼中似乎有一個錯誤,我似乎找到了它。

我正在嘗試使用sql更新數據庫中的記錄。 當我單擊“提交”時,頁面重定向到我設置的頁面,以顯示我嘗試更新的表的內容,但沒有任何變化。

<?php
/* Database credentials. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
define('DB_SERVER', '###');
define('DB_USERNAME', '###');
define('DB_PASSWORD', '###');
define('DB_NAME', '###');

/* Attempt to connect to MySQL database */
$mysqli = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

// Check connection
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);


    }
    $result = mysqli_query($mysqli,"SELECT * FROM appeals");
echo "<article>";

echo "<table class='w3-table-all w3-card-4' width='700' height='300' align='center' border='1'>
<caption><h3>Appeals</h3></caption>
<tr>
<th>Appeal ID</th>
<th>Crime ID</th>
<th>Filing Date</th>
<th>Hearing Date</th>
<th>Status</th>
<th>Update Record</th>
</tr>";

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['appeal_ID'] . "</td>";
echo "<td>" . $row['crime_ID'] . "</td>";
echo "<td>" . $row['filing_date'] . "</td>";
echo "<td>" . $row['hearing_date'] . "</td>";
echo "<td>" . $row['status'] . "</td>";
echo "<td style='text-align:center;'><a href='update-appeals.php?id=". $row['appeal_ID'] . "'>UPDATE</a></td>";
echo "</tr>";
}
echo "</table>";

echo "</article>";

echo "<footer>
  <p>Created by: Micah George </p>
</footer>";
echo "</body></html>";

mysqli_close($mysqli);
?>

出於縮短帖子的目的,切出了一些不需要的代碼,但是上面將要更新的記錄的ID /主鍵發送到了下面進行更新的頁面。 (我知道它是有效的,因為我得到了ID,但在需要時將其包括在內。)

<?php
/* Database credentials. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
define('DB_SERVER', '###');
define('DB_USERNAME', '###');
define('DB_PASSWORD', '###');
define('DB_NAME', '###');

/* Attempt to connect to MySQL database */
$mysqli = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

// Check connection
if($mysqli === false){
    die("ERROR: Could not connect. " . $mysqli->connect_error);

$id= $_GET ['id'];
if(isset($_POST['save']))
{
    $sql = "UPDATE appeals SET crime_ID = '".$_POST["crime_ID"]."', filing_date = '".$_POST["filing_date"]."', hearing_date = '".$_POST["hearing_date"]."', status = '".$_POST["status"]."' WHERE appeal_ID = '$id'" ;

    $result = mysqli_query($mysqli,$sql);
    header('Location: jailAW-read_appeals.php');
}


echo "<article>";
echo "
<div class='form'>
<form action='update-appeals.php' method='post'>
<label id='first'> Appeal ID: $id </label><br/>
<input type='hidden' name='appeal_ID'><br/>


<label id='first'>Crime ID:</label><br/>
<select name='crime_ID'>";
$result = mysqli_query($mysqli, "SELECT crime_ID, criminal_ID FROM crimes");
while ($row = $result->fetch_assoc()) {
    $id1 = $row['crime_ID'];
    $criminal = $row['criminal_ID']; 
    echo '<option value="'.$id1.'">'.$id1.' - ('.$criminal.')</option>';
}
echo"
</select><br/>


<label id='first'>Filing Date</label><br/>
<input type='date' name='filing_date'><br/>

<label id='first'>Hearing Date</label><br/>
<input type='date' name='hearing_date'><br/>

<label id='first'>Status:</label><br/>
<select name='status'>
  <option value='P'>P</option>
</select><br/><br/>

<button type='submit' name='save' style='width:205px; background-color: green;'>Submit</button>
</div>
</form>";
echo "</article>";

echo "<footer>
  <p>Created by: Micah George </p>
</footer>";
echo "</body></html>";

mysqli_close($mysqli);
?>

這是新手,所以我的錯誤可能很簡單,但可以提供任何幫助。 (對於最終項目)。

問題在這條線

<form action='update-appeals.php' method='post'>

您的表單提交到update-appeals.php ,URL中沒有$_GET['id']

我建議您將上訴ID作為隱藏input添加到表單中(可通過$_POST['id'] ):

<select name='status'>
  <option value='P'>P</option>
</select><br/><br/>
<input type="hidden" name="id" value="<?=$_GET['id']?>" />

或修改操作網址(id將以$_GET['id'] ):

<form action='update-appeals.php?id=<?=$_GET['id']?>' method='post'>

當然,請盡快准備好的陳述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM