2016-04-07 10 views
0

こんにちは、私は、MySQLは、NetBeansで発生する問題をPHPのフォームを使用して更新すると問題がある持っている: "
お知らせが:未定義の変数は:Cにfetched_row:\ XAMPP \ htdocsに\ Resume_DB \ PHP \ Edication_Edit.php更新のMySQLデータベースのテキストボックスを使用してPHPのフォームを使用して


ライン上で私のテキストボックスのすべての4で。私が持っているコードは次のとおりです。

<?php 

    mysql_connect("localhost", "root", ""); 
    mysql_select_db("cs266db_db1"); 


    if(isset($_GET['edit_id'])) 
{ 
    $sql_query="SELECT * FROM education Where Edit_Education=".$_GET['edit_id']; 
$result_set= mysql_query($sql_query); 
$fetched_row= mysql_fetch_array($result_set); 
} 

if(isset($_POST['btn_update'])) 
{ 
//variables for input data 
$Class = $_POST['Class']; 
$Discipline = $_POST['Discipline']; 
$Description = $_POST['Description']; 
$Term = $_POST['Term']; 


//sql query for update data 
    $sql_query = "UPDATE Education SET Class='$Class', Discipline='$Discipline', Description='$Description', Term='$Term' WHERE    Education_Edit=".$_GET['edit_id']; 



    //sql query execution function 

    if(mysql_query($sql_query)) 
{ 
    ?> 
<script type='text/javascript'> 
    alert('Data Has Been Updated'); 
    window.location.href='Eduaction.php'; 
    </script> 
    <?php 
} 
else 
{ 
?> 
<script type='text/javascript'> 
    alert('Error Occured while Updating Data'); 
    </script> 
    <?php 
} 

    //sql query execution function 
} 

    if(isset($_POST['btn-cancel'])) 
{ 
header("Location: Education.php"); 
} 
    ?> 

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Edit Education</title> 

    </head> 
    <body> 
<center> 

    <div id="header"> 
    <div id="content"> 
    <label>Edit Education</label> 
    </div> 
    </div> 
    <div id="body"> 
    <div id="content"> 
    <form method="post"> 
    <table align="center"> 
    <tr> 
    **<td><input type="text" name="Class" placeholder="Class" value="<?php echo $fetched_row['Class']; ?>" required /></td> 
    </tr> 
    <tr> 
    <td><input type="text" name="Discipline" placeholder="Discipline" value="<?php echo $fetched_row['Discipline']; ?>" required /></td> 
    </tr> 
    <tr> 
    <td><input type="text" name="Description" placeholder="Description" value="<?php echo $fetched_row['Description']; ?>" required /></td> 
</tr> 
    <tr> 
     <td><input type="Text" name="Term" placeholder="Term" value="<?php echo $fetched_row['Term']; ?>" required</td>** 
    </tr> 
<tr> 
<td> 
<button type="submit" name="btn-update"><strong>UPDATE</strong></button> 
<button type="submit" name="btn-cancel"><strong>Cancel</strong></button> 
</td> 
</tr> 
</table> 
</form> 
</div> 

<div id="footer"> 
    <div id="content"> 

    </div> 
</div> 

</center> 
</body> 
</html> 

任意の考え?あなたの助けを借りてくれてありがとう

+1

'fetched_row'が条件内に設定されていますが、' view'に条件がありません。 – Rayon

+1

mysql_error()を使用しようとしましたか? isset($ _GET ['edit_id'])の条件が** trueの場合、mysqlエラーでなければならず、mysql_error()文でチェックすることができます。 – Fabricio

+0

これは素晴らしいエラーを修正しました!ありがとう、グレッグ。しかし、SQLはまだ更新されません。なぜどんなアイデア? –

答えて

1

問題は、fetched_rowは$ _GET ['edit_id']が設定されているときだけ割り当てられるということです。それ以外の場合は存在しませんが、$ _GET ['edit_id']が設定されていなくても、まだ使用しようとしています。

変更

<td><input type="Text" name="Term" placeholder="Term" value="<?php echo $fetched_row['Term']; ?>" required</td>** 

へ:

+0

'isset($ fetched_row ['Term'])に関係なく' isset($ _ GET ['edit_id']) 'だと思います。 – Rayon

+0

ありがとう!それは私がページ上にある問題を修正しましたが、SQLは更新されませんでした。 –

+0

@RayonDabre変数が設定されていることを確認しています(設定されていない場合は何もしません)。あなたがどちらを使うかは関係ありません。 –

1

これは、更新クエリで使用すると、 "Education_Edit" を使用している代わりに、 "Edit_Education" のようだか、代わりに "Education_Edit" のあなたが "Edit_Education" を使用していますクエリを選択します。

$sql_query="SELECT * FROM education Where Edit_Education=".$_GET['edit_id']; 

$sql_query = "UPDATE Education SET Class='$Class', Discipline='$Discipline', Description='$Description', Term='$Term' WHERE Education_Edit=".$_GET['edit_id']; 
+0

両方、仕事 –

+0

データベースのテーブル構造を共有してください – Nabeel

0

変更した場合は(ISSET($ _ POST [ 'btn_update']))の場合に(ISSET($ _ POST [ 'BTN-更新']))HTMLのbuttonタグにあなたはBTN-更新などのボタンの名前からです。 更新クエリの変更列名Education_EditがEdit_Educationに変更