簡體   English   中英

使用MYSQL數據更新表單

[英]Updating Form with MYSQL data

我是PHP新手,想創建一個表單,在該表單中,用戶將數據插入到表單中(有效),然后將其存儲在MYSQL DB上(有效),現在必須顯示數據,然后必須能夠進行修改某些記錄,現在我有顯示記錄的部分以及“編輯”按鈕,但是由於同一條記錄不斷出現,某處出現了問題,所以我猜我的代碼有問題:(

請幫忙:

這是index.php代碼:

<?php
include('dbinfo.php');
$sql="SELECT * FROM stats";

$result = mysql_query($sql, $db) or die (mysql_error()); 
$pageTitle = "My Stats Database";
include("header.php");

print <<<HERE
<h2> My Contacts</h2>
Select a Record to update <a href="addstat.php"> add new stat</a>.
<table id="home">
HERE;

while ($row=mysql_fetch_array($result)){
    $id=$row["id"];
    $type=$row["type"];
    $depthead=$row["depthead"];
    $person=$row["person"];
    $descr=$row["descr"];
    $recdate=$row["recdate"];
    $tolog=$row["tolog"];
    $senttorev=$row["senttorev"];
    $recfromrev=$row["recfromrev"];

print <<<HERE
<tr>
<td>
<form method="POST" action="updateform.php">
<input type="hidden" name="sel_record" value="$id">
<input type="submit" name="update" value="   Edit   " </form>
</td>

<td><strong> Description: </strong>$descr,<p> <strong>Type: </strong>$type</p> <p><strong> Department Head: </strong>$depthead</p> 
<strong> Test Analyst: </strong> $person<br/></td>
HERE;
}
print "</tr></table></body></html>";


?>

然后這是我的更新updateform.php腳本:

<?php
include("dbinfo.php");
$sel_record = $_POST['sel_record'];
//$sel_record = (isset($_POST['sel_record'])) ? $_POST['sel_record'] : ''; 

$sql = "SELECT * FROM stats WHERE id = 'sel_record'";

//execute sql query  and get result
$result = mysql_query($sql, $db) or die (mysql_error());
if (!$result) {
    print "<h1> Something went wrong!</h1>";
} else

{ //begin while loop

    while ($record = mysql_fetch_array($result, MYSQL_ASSOC)){
    $id = $record["id"];
    $type = $record['type'];
    $depthead = $record['depthead'];
    $person = $record["person"];
    $descr = $record["descr"];
    $recdate = $record["recdate"];
    $tolog = $record["tolog"];
    $senttorev = $record["senttorev"];
    $recfromrev = $record["recfromrev"];
}
    }

  //end while loop


$pagetitle = "Edit Stat";
include ("header.php");

print <<<HERE

    <h2> Modify this Stat</h2>
    <p> Change the values in the boxes and click "Modify Record" button </p>

    <form id="stat" method="POST" action="update.php">
    <input type="hidden" name="id" value="$id">
<div>
     <label for="type">Type*:</label>
     <input type="text" name="type" id="type" value="$type">
</div>
<p>
</p>
<div>
        <label for = "depthead" >Department Head*:</label>
    <input type = "text" name = "depthead" id = "depthead" value = "$depthead">
</div>
<p>
</p>
<div>
    <label for="person">Test Analyst*:</label>
    <input type="text" name="person" id="person" value="$person">
</div>
<p>
</p>
<div>
    <label for="descr">Description*:</label>
    <input type="text" name="descr" id="descr" value="$descr">
</div>
<p>
</p>

<div>
    <label for="recdate">Date Received*:</label>
    <input type="text" name="recdate" id="recdate" value="$recdate">
</div>
<p>
</p>
<div>
    <label for="tolog">Date to log*:</label>
    <input type="text" name="tolog" id="tolog" value="$tolog">
</div>
<p>
</p>
<div>
    <label for="senttorev">Sent to Rev:</label>
    <input type="text" name="senttorev" id="senttorev" value="$senttorev">
</div>
<p>
</p>
<div>
    <label for="recfromrev">Received from Rev*:</label>
    <input type="text" name="recfromrev" id="recfromrev" value="$recfromrev">
</div>
<p>
</p> 
<div id="mySubmit">
<input type="submit" name="submit" value="Modify Record">
</div>
</form>
HERE;

?>

然后,mysql的實際更新具有一個update.php腳本:

<?php

include "dbinfo.php";

    $id = $_POST['id'];
    $type = $_POST['type'];
    $depthead = $_POST['depthead'];
    $person = $_POST['person'];
    $descr=$_POST['descr'];
    $recdate=$_POST['recdate'];
    $tolog=$_POST['tolog'];
    $senttorev=$_POST['senttorev'];
    $recfromrev=$_POST['recfromrev'];

    $sql="UPDATE stats SET

            depthead='$depthead',
            person='$person',
            descr='$descr',
            recdate='$recdate',
            tolog='$tolog',
            senttorev='$senttorev',
            recfromrev='$recfromrev'
        WHERE id='$id'";

    $result=mysql_query($sql) or die (mysql_error());

    print "<html><head><title>Update Results</titlel></head><body>";
    include "header.php";
    print <<<HERE
    <h1>The new Record looks like this: </h1>

    <td>
    <p><strong>Type: </strong>$type</p> 
    <p><strong>Department Head: </strong>$depthead</p> 
    <p><strong>Test Analyst: </strong> $person</p>
    <p><strong>Description: </strong>$descr</p>  
    <p><strong>Received Date:</strong>$recdate</p>
    <p><strong>Date to Log:</strong>$tolog</p>
    <p><strong>Sent to rev:</strong>$senttorev</p>
    <p><strong>Received from Rev:</strong>$recfromrev</p>
    <br/>
HERE;

有人可以告訴我為什么只保留其中一條記錄與從index.php頁中選擇哪一條無關緊要。 出於某種原因,我認為這是我的$sel_record變量,但我不確定並用盡了Ideas。

先感謝您..

這是您在updateform.php中的問題:

$sql = "SELECT * FROM stats WHERE id = 'sel_record'";

應該是:

$sql = "SELECT * FROM stats WHERE id = $sel_record";

您錯過了$符號來調用變量,並且不需要在ID兩端加上引號。

暫無
暫無

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

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