2014-05-16 166 views
0

我正在處理將類別添加到類別表的頁面。我得到了插入(添加新類別)功能,但我的更新功能未更新該值。我已經看到過類似的其他問題,但它似乎無法解決我的問題,除了「更新」功能之外,我無法專門識別該問題。使用文本框和編輯按鈕更新MySQL表(使用HTML和PHP)

我懷疑我的更新查詢,但我相信它是正確的。所以我很難過,並尋找另一個人,看看他們是否抓住了一些東西。

<html> 
<body> 

<h1>Current Categories:</h1> 

<?php 

$con=mysqli_connect("hidden","hidden","hidden","hidden"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$strSQL = "SELECT * FROM Category WHERE Class_idClass = 1"; 

//WHERE $_SESSION['user'] = 

$result = mysqli_query($con,$strSQL); 
?> 

<table border='1'> 
<tr> 
<th>Category</th> 
<th>Weight</th> 
<th>Category Type</th> 
<th>Est. # of Assignments</th> 
</tr> 


<?php 
while($row = mysqli_fetch_array($result)) 
    { 
?> 

<tr> 
<td> 
<input type="text" name="CategoryTitle" size="20" value="<?php echo $row['CategoryTitle']; ?>"> 
</td> 
<td> 
<input type="text" name="CategoryWeight" size="20" value="<?php echo $row['CategoryWeight']; ?>" onkeypress="return isNumber(event)"> 
</td> 
<td> 
<select id="CategoryType" name="CategoryType"> 
     <option value="<?php echo $row['CategoryType']; ?>" selected='selected'>Current: <?php echo $row['CategoryType']; ?></option> 
      <option value="T">Test (T)</option> 
      <option value="H">Homework (H)</option> 
      <option value="Other">Other</option> 
</select> 
</td> 
<td> 
<input type="text" name="CategoryAssignmentEstimates" value="<?php echo $row['CategoryAssignmentEstimates']; ?>" onkeypress="return isNumber(event)"> 
</td> 

<td> 
<?php 
$iduser=mysqli_real_escape_string($connect,$rows['idUser']); 
echo "<input name='Edit' type='submit' id='Edit' value='Edit'></td>"; 
?> 
</td> 

</tr> 
<?php 
} 
?> 
</table> 

<?php 
mysqli_close($con); 
?> 



<form action="insertCategory.php" method="post"> 
<br> 
New Category Name: <input type="text" name="CategoryTitle"><br> 
Weight Percentage: <input type="text" name="CategoryWeight" onkeypress="return isNumber(event)"><br> 
Category Type: 
<select id="CategoryType" name="CategoryType"> 
      <option value="T">Exam/Test</option> 
      <option value="H">Homework</option> 
      <option value="">Other</option> 
</select><br> 
Estimated Number of Assignments: <input type="text" name="CategoryAssignmentEstimates" onkeypress="return isNumber(event)"> 

<?php 
$ClassID = '1'; 
$CatClassID = $_POST['$ClassID']; 
?> 

<script language="javascript"> 
function isNumber(evt) { 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
     return false; 
    } 
    return true; 
} 
</script> 
<br> 
<input type="submit" name="Add"> 
</form> 

<?php 
//If edit was hit 
if ($_POST['edit']) { 
    $CatTitle = $_POST['CategoryTitle']; 
    $CatWeight= $_POST['CategoryWeight']; 
    $CatType = $_POST['CategoryType']; 
    $CatEstNumAssign= $_POST['CategoryAssignmentEstimates']; 

$query="UPDATE Category SET CategoryTitle = '$CatTitle', CategoryWeight = '$CatWeight', CategoryType = '$CatType', CategoryAssignmentEstimates = '$CatEstNumAssign' WHERE Class_idClass = 1"; 
//Below didn't work with period and quotes 
//$query="UPDATE Category SET CategoryTitle = '".$CatTitle."', CategoryWeight = '".$CatWeight."', CategoryType = '".$CatType."', CategoryAssignmentEstimates = '".$CatEstNumAssign."' WHERE Class_idClass = 1"; 
$result = mysqli_query($con,$query); 
} 

// Insert data 
//if ($_POST['Add']) { 
// $Insert = mysql_query("INSERT Category SET CategoryTitle = '$CatTitle', CategoryWeight = '$CatWeight', CategoryType = '$CatType', CategoryAssignmentEstimates = '$CatEstNumAssign', Class_idClass = 1") 
// or die ('Error Updating Data! <br />' .mysql_error()); 

// echo 'Update successful'; 
//} 
?> 

</body> 
</html> 
+0

您是否收到任何錯誤?點擊「修改」會發生什麼? –

+0

我不會收到錯誤。什麼都沒發生。我嘗試將類型=按鈕的編輯按鈕更改爲類型=提交,但它沒有什麼區別。 – Coogie7

回答

0

您的Edit提交按鈕和輸入不在表格內。當你點擊Edit時,沒有任何反應,因爲按鈕不是表格的一部分,所以它不會提交任何內容。嘗試包裹所有的編輯選項與

<form action="" method="post"> 

    <input type="text" ... > 
    <input type="text" ... > 

    <select> ... </select> 

    .... 

    <input type="submit" ... > 

</form> 

注意,action=""將表單提交到當前頁面。

+0

但是,insertCategory.php是一個單獨的文件來運行插入查詢,我試圖在頁面上運行更新查詢。即使是插入新類別功能,我是否仍然希望將表單放在表單中? – Coogie7

+0

對不起,我只是假設'insertCategory.php'是處理頁面。你仍然需要一個表單,但是如果你希望它僅僅提交給自己(表單所在的頁面),那麼就使用'

'。一個空行爲將默認爲當前頁面。看到我更新的答案。 –

+0

我可以把整個部分放在窗體中嗎?當我將按鈕放在表單中時,它不但使我的桌子看起來很奇怪,而且在刷新後也不起作用。 – Coogie7