2014-10-07 220 views
0

我目前有這些PHP頁面可以讓我添加一條記錄到數據庫。 (在這種情況下,它的成員)它可以完美地工作,因爲我可以添加,刪除和查看。但林不知道如何讓編輯(或更新功能的工作編輯記錄PHP表格

這裏是我的數據庫連接代碼:

<?php 

// Server Info 
$server = 'localhost'; 
$username = 'root'; 
$password = ''; 
$database = 'gamgam'; 

// Connect to database 
$connection = new mysqli($server, $username, $password, $database); 

?> 

這是我添加代碼:

<!DOCTYPE html> 
<html> 
<head><title>Insert Users</title></head> 
<body> 
<h2>Insert User Confirmation</h2> 

<form action="<?php $_SERVER['PHP_SELF']?>" method="post"/> <br> 
<?php 

require_once('connection.php'); 

echo "<label for='memberID' >Member ID:</label>"; 
echo "<input type='text' name='memberID' id='memberID' />"; 
echo "<br /><br />"; 

echo "<label for='username' >Username:</label>"; 
echo "<input type='text' name='username' id='username' />"; 
echo "<br /><br />"; 

echo "<label for='password' >Password:</label>"; 
echo "<input type='password' name='password' id='password' />"; 
echo "<br /><br />"; 

echo "<label for='fName' >Firstname:</label>"; 
echo "<input type='text' name='fName' id='fName' />"; 
echo "<br /><br />"; 

echo "<label for='lName' >Lastname:</label>"; 
echo "<input type='text' name='lName' id='lName' />"; 
echo "<br /><br />"; 

echo "<label for='address' >Address:</label>"; 
echo "<input type='text' name='address' id='address' />"; 
echo "<br /><br />"; 

echo "<label for='email' >Email:</label>"; 
echo "<input type='text' name='email' id='email' />"; 
echo "<br /><br />"; 

echo "<input type='submit' name='submit' value='Submit' />"; 
echo "<input type='reset' value='Clear' />"; 
echo "<br /><br />"; 
?> 
</form> 
</section> 

<p><a href='login.php'>Login</a></p>  

<?php 
if(!isset($_POST['submit'])) { 
    echo 'Please Register'; 
} else { 

    $memberID = $_POST['memberID']; 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $fName = $_POST['fName']; 
    $lName = $_POST['lName']; 
    $address = $_POST['address']; 
    $email = $_POST['email']; 


    $query = "INSERT INTO `members` 
        (MemberID, Username, Password, FirstName, LastName, 
        StreetAddress, Email) 
       VALUES ('$memberID', '$username', '$password', '$fName', 
         '$lName', '$address', '$email')"; 
     mysqli_query($connection, $query) 
     or die(mysqli_error($connection)); 

     $rc = mysqli_affected_rows($connection); 
     if ($rc==1) 
     { 
      echo '<h4>The database has been updated with the following details: </h4> '; 
      echo 'MemberID: '.$memberID.'<br />'; 
      echo 'Username: '.$username.'<br />'; 
      echo 'Password: '.$password.'<br />'; 
      echo 'First Name: '.$fName.'<br />'; 
      echo 'Last Name: '.$lName.'<br />'; 
      echo 'Address: '.$address.'<br />'; 
      echo 'Email: '.$email.'<br />'; 
     } else {  
      echo '<p>The data was not entered into the database this time.</p>'; 
     } 
    } 
?> 
</body> 
</html> 

這是我的看法代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <title>View Records</title> 
</head> 
<body> 

<table border="1" style="width:100%" > 

<?php 
/* 
    VIEW.PHP 
    Displays all data from 'players' table 
*/ 

    // connect to the database 
    include('connection.php'); 

    // get results from database 
    $result = mysqli_query($connection, "SELECT * FROM members") 
     or die(mysqli_error()); 

    // loop through results of database query, displaying them in the table 
    while($row = mysqli_fetch_array($result)) { 

     // echo out the contents of each row into a table 
     echo "<tr>"; 
     echo '<td>' . $row['MemberID'] . '</td>'; 
     echo '<td>' . $row['Username'] . '</td>'; 
     echo '<td>' . $row['Password'] . '</td>'; 
     echo '<td>' . $row['FirstName'] . '</td>'; 
     echo '<td>' . $row['StreetAddress'] . '</td>'; 
     echo '<td>' . $row['Email'] . '</td>'; 

     echo '<td><a href="edit.php?MemberID=' . $row['MemberID'] . '">Edit</a></td>'; 
     echo '<td><a href="delete.php?MemberID=' . $row['MemberID'] . '">Delete</a></td>'; 
     echo "</tr>"; 
    } 

    // close table> 
    echo "</table>"; 
?> 
<p><a href="insert_user.php">Add a new record</a></p> 

</body> 
</html> 

這裏是刪除代碼:

<?php 

    // Connect to the database 
    include('connection.php'); 

    // Confirm that the 'code' variable has been set 
    if (isset($_GET['MemberID'])) 
    { 
     // Get the 'MemberID' variable from the URL 
     $MemberID = $_GET['MemberID']; 

     // Delete record from database 
     if ($stmt = $connection->prepare("DELETE FROM members WHERE MemberID = ? LIMIT 1")) { 
      $stmt->bind_param("i",$MemberID); 
      $stmt->execute(); 
      $stmt->close(); 

     } else { 
      echo "ERROR: could not prepare SQL statement."; 
     } 
     $connection->close(); 

     // Redirect user after delete is successful 
     header("Location: view.php"); 
    } else { 
    // If the 'code' variable isn't set, redirect the user 
     header("Location: view.php"); 
    } 

?> 

我已經經歷了許多基本的PHP表單模板在線試圖納入他們已經做了什麼來取得成果,但沒有任何成功。需要爲我的網站編寫什麼代碼才能具有編輯已在數據庫中創建的記錄的功能,而無需通過phpmyadmin。任何幫助都是有好處的。

+1

壞人壞事可怕的代碼查詢。切勿在簡單的GET請求後放置像'delete'這樣的破壞性操作。考慮一下,如果你的瀏覽器決定預取你頁面上的所有鏈接並點擊每一個刪除按鈕,會發生什麼?繁榮去你的數據庫。 – 2014-10-07 14:31:22

+0

這不會是一個真正的網站。我只需要爲我的分配標準提供刪除功能。我明白,代碼可能是可怕的,我不是最好的PHP,但我只需要更新功能工作 – 2014-10-07 14:37:52

+1

我很想說'那麼這不會是一個真正的答案,然後',但基本上,**如果你正在關注班級**,這應該很簡單。所以,閱讀你的筆記,然後走開,如果你失敗了,那麼當你有什麼需要證明我們沒有爲你做功課的時候,你會找到幫助。 – RiggsFolly 2014-10-07 14:44:06

回答

0

Edit將與Add一樣,但您需要先閱讀記錄並填寫字段值。

先從add代碼,這樣做:

<?php $MemberID = (int) $_GET['MemberID']; ?> 
<form action="<?php $_SERVER['PHP_SELF']?>" method="post"/> <br> 
<input type="hidden" name="MemberID" value="<?php echo $MemberID; ?>" 
<?php 
require_once('connection.php'); 
$result = mysqli_query($connection, "SELECT * FROM members where MemberID = $MemberID") or die(mysqli_error()); 

// loop through results of database query, displaying them in the table 
$row = mysqli_fetch_assoc($result); 
extract($row); 

echo "<label for='memberID' >Member ID:</label>"; 
echo "$memberID"; // member ID should not be editable 
echo "<br /><br />"; 

echo "<label for='username' >Username:</label>"; 
echo "<input type='text' name='username' id='username' value="$username" />"; 
echo "<br /><br />"; 

的PHP代碼將有一個像

`UPDATE `members` SET `username` = '$username' ... WHERE `MemberID` = '$MemberID'"