2017-12-07 3 views
-1

定義済みの変数名、アドレス、およびIDは未定義です。私はisset関数を使用していますが、動作していません。また、一部のHTMLコードが名前と住所フィールドに表示されます。SQLのデータを更新する際のコードのPHPエラー

<?php 
$link=mysqli_connect("localhost","root",""); 
$select=mysqli_select_db($link,'first_db'); 

if(isset($_POST['update'])){ 
    $id=$_POST['id']; 
    $query="SELECT * FROM list WHERE id='$id'"; 
    $run=mysqli_query($link,$query); 
    $row=mysqli_fetch_array($run); 
} 
if(isset($_POST['name'])&& isset($_POST['address'])){ 
    $name=$_POST['name']; 
    $address=$_POST['address']; 
    $id = $_POST['id']; 
    $query="UPDATE list SET name='$name',address='$address' WHERE id='$id'"; 
    $result=mysqli_query($link,$query); 
} 
else{ 
    echo"The fields cannot be empty"; 
} 

?> 

HTMLコードは次のとおりです。

<html> 
    <head>  
     <title>Edit Data</title> 
    </head> 

    <body> 
     <a href="index.php">Home</a> 
     <br/><br/> 

     <form name="form1" method="post" action="update.php"> 
      <table border="0"> 
       <tr> 
        <td>Name</td> 
        <td><input type="text" name="name" value="<?php echo $name;?>"></td> 
       </tr> 
       <tr> 
        <td>address</td> 
        <td><input type="text" name="address" value="<?php echo $address;?>"></td> 
       </tr> 

       <tr> 
        <td><input type="hidden" name="id" value="<?php echo $_GET['id'];?>"></td> 
        <td><input type="submit" name="update" value="Update"></td> 
       </tr> 
      </table> 
     </form> 
    </body> 
    </html> 
+0

あなたは '' $ id = $ _GET ['update']; ''を2番目のif条件で見つけられませんでした。 idは定義されていません。 –

答えて

0

、だから私は再びここに別の答えを投稿しています:

いくつかのものを更新する必要があります。

<?php 
$link=mysqli_connect("localhost","root",""); 
$select=mysqli_select_db($link,'first_db'); 

if(isset($_GET['update'])){ // Checking if the query parameter is available. 
    $id=$_GET['update']; // Getting the query string value here. 
    $query="SELECT * FROM list WHERE id='$id'"; 
    $run=mysqli_query($link,$query); 
    $row=mysqli_fetch_array($run); 
} 
if(isset($_POST['name'])&& isset($_POST['address'])){ 
    $name=$_POST['name']; 
    $address=$_POST['address']; 
    $id = $_POST['id']; 
    $query="UPDATE list SET name='".$name."',address='".$address."' WHERE id='".$id."'"; // Added `""` here for all variables. 
    $result=mysqli_query($link,$query); 
} 
else{ 
    echo"The fields cannot be empty"; 
} 

?> 

上記のコードでは、$ row変数でクエリ結果を取得していることに注意してください。だから、HTMLでもそれを使用してください。このように:

<html> 
<head>  
    <title>Edit Data</title> 
</head> 

<body> 
    <a href="index.php">Home</a> 
    <br/><br/> 

    <form name="form1" method="post" action="update.php"> 
     <table border="0"> 
      <tr> 
       <td>Name</td> 
       <td><input type="text" name="name" value="<?php echo (isset($row['name']))? $row['name'] : ''?>"></td> 
      </tr> 
      <tr> 
       <td>address</td> 
       <td><input type="text" name="address" value="<?php echo (isset($row['address']))? $row['address'] : ''?>"></td> 
      </tr> 

      <tr> 
       <td><input type="hidden" name="id" value="<?php echo (isset($_GET['id']))? $_GET['id'] : ''?>"></td> 
       <td><input type="submit" name="update" value="Update"></td> 
      </tr> 
     </table> 
    </form> 
</body> 
</html> 
+0

はい、それは働いた。ありがとうございました。 – user9053914

+0

ようこそ@ user9053914、お手伝いをします。 –

0

<td><input type="hidden" name="id" value="<?php echo $_GET['id'];?>"></td> 

によってライン

<td><input type="hidden" name="id" value=<?php echo $_GET['id'];?>></td> 

の下に交換してくださいあなたはvalue属性に "" 逃しました。

編集: 補正した後、あなたのHTMLが正しいだろうし、その後$id=$_GET['update'];を確認してくださいその定義されていない私はあなたがどこからリダイレクトされている場合は、get方法で$id=$_POST['id'];

+0

彼はコードのどこでも 'id'を使用していません。だから、これは問題の解決策ではありません。 –

+0

彼はまた、間違いのようにいくつかのHTMLコードが表示されます。 –

+0

HTMLコードの理由...私は共有しています。彼は行方不明です。あなたはチェックしましたか?私の更新された答えも見てください。 –

0

としてそれを修正する必要があると思う、その後の確認あなたが更新= {{ID}}更新のためにあなたがURLにID = {{ID}}パラメータを持っている必要がありますので、あなたはidフィールドからIDを取っているので、

if(isset($_POST['name'])&& isset($_POST['address'])){ 
    $name=$_POST['name']; 
    $address=$_POST['address']; 
    $id = $_POST['id']; 
    $query="UPDATE list SET name='$name',address='$address' WHERE id='$id'"; 
    $result=mysqli_query($link,$query); 
} 

あなたとURLにIDを渡している場合は、URLパラメータ〜する必要があるポスト変数からidを取得します(非表示のidフィールド)。 htmlコードがある

if(isset($_GET['update'])){ 
     $id=$_POST['id'];//use this insted of $id=$_GET['update'] in your form name of id parameter is id 
     $query="SELECT * FROM list WHERE id='$id'"; 
     $run=mysqli_query($link,$query); 
     $row=mysqli_fetch_array($run); 
    } 


if(isset($_POST['name'])&& isset($_POST['address'])){ 
     $id=$_POST['id']; 
     $name=$_POST['name']; 
     $address=$_POST['address']; 
     $query="UPDATE list SET name='$name',address='$address' WHERE id='$id'"; 
     $result=mysqli_query($link,$query); 

    } 
+0

まだ未定義の変数があります:更新ページの名前とアドレスフィールドに名前のエラーがあります – user9053914

0
if(isset($_POST['id'])) 
{ 
$name=$_POST['name']; 
$address=$_POST['address']; 
$id = $_POST['id']; 
$query="UPDATE list SET name='".$name."',address='".$address."' WHERE id='".$id."'"; 
$result=mysqli_query($link,$query); 
} 
0

あなたの解決策は次のとおりです。私は問題を持って

<html> 
<head>  
    <title>Edit Data</title> 
</head> 

<body> 
    <a href="index.php">Home</a> 
    <br/><br/> 

    <form name="form1" method="post" action="update.php"> 
     <table border="0"> 
      <tr> 
       <td>Name</td> 
       <td><input type="text" name="name" value="<?php echo $name;?>"></td> 
      </tr> 
      <tr> 
       <td>address</td> 
       <td><input type="text" name="address" value="<?php echo $address;?>"></td> 
      </tr> 

      <tr> 
       <td><input type="hidden" name="id" value="<?php echo $_GET['id'];?>"></td> 
       <td><input type="submit" name="update" value="Update"></td> 
      </tr> 
     </table> 
    </form> 
</body> 
</html> 
+0

まだ未定義の変数があります:更新ページの名前とアドレスフィールドに名前のエラーがあります – user9053914

0
<?php 
$link=mysqli_connect("localhost","root",""); 
$select=mysqli_select_db($link,'first_db'); 

if(isset($_POST['update'])){ 
    $id=$_POST['id']; 
    $query="SELECT * FROM list WHERE id='$id'"; 
    $run=mysqli_query($link,$query); 
    $row=mysqli_fetch_array($run); 
} 
if(isset($_POST['name'])&& isset($_POST['address'])){ 
    $name=$_POST['name']; 
    $address=$_POST['address']; 
    $id = $_POST['id']; 
    $query="UPDATE list SET name='$name',address='$address' WHERE id='$id'"; 
    $result=mysqli_query($link,$query); 
} 
else{ 
    echo"The fields cannot be empty"; 
} 

?> 

以下のよう

+0

自分で答えを投稿しましたか? –

+0

これは私の編集したコードですが、名前とアドレスフィールドの更新ページでエラーが発生します。 – user9053914

+0

最初の 'if'条件は、編集ページに表示されるリストからデータを取得するページにありますか?ユーザーがフォームを送信すると、2番目の 'if'条件が実行されますか? –

関連する問題