2017-04-19 10 views
0

を削除するには取得できません、私のdelete.phpページです:行がここでPHP

<?php 
//including the database connection file 
include("config.php"); 

//getting id of the data from url 
$id = $_GET['id']; 

//deleting the row from table 
$result = mysqli_query($mysqli, "DELETE FROM users WHERE id=$id"); 

//redirecting to the display page (index.php in our case) 
header("Location:index.php"); 
?> 

とヒットを呼んでいるindex.phpページがあります。

<?php 
//including the database connection file 
include("config.php"); 

$result = mysqli_query($mysqli, "SELECT * FROM users ORDER BY id ASC"); 
// using mysqli_query instead 


while($res = mysqli_fetch_array($result)) 
    { 
?> 
<table> 
<tr> 
    <td class="long"><?php echo $res['nameFirst'];?></td> 
    <td class="long"><?php echo $res['nameLast'];?></td> 
    <td class="long"><?php echo $res['email'];?></td> 
    <td><a href="edit.php?id=$res[id]">Edit</a></td> 
    <td><a href="delete.php?id=$res[id]" onClick="return confirm('Are you sure you want to delete?')">Delete</a></td> 
</tr> 
<?php } ?> 

</table> 

しかし、私はクリックしてくださいリンクを削除すると、ページは確認を求めて、index.php(それ自体)を再読み込みしてもテーブルの行は削除されません。

これは簡単な修正ですが、問題は確認できません。エラーが$ result行のどこかにあると仮定していますか?

ありがとうございます。

+0

'$ resを[ID]' PHPタグ内に保つことが必要があります – Saty

+0

** WARNING **:使用 'mysqli'あなたがすべき[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli- stmt.bind-param.php)を使用してユーザーデータをクエリに追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'、' $ _GET'、**任意の**ユーザデータを直接クエリーに入れないでください。誰かがあなたのミスを悪用しようとすると非常に危険です。 – tadman

+0

メモとして、物事を削除するGETスタイルのリンクを持つことは、通常は非常に悪い考えです。いくつかのブラウザーとWebクローラーはこれらのリンクをトリガーすることができ、データベース内のすべてのものを体系的に削除する可能性があります。このため、ほとんどの人は少なくともPOSTの後ろに置くことを主張しています。 – tadman

答えて

0

その中を試してみてください

<a href="delete.php?id=<?php echo $res[id] ?>" onClick="return confirm('Are you sure you want to delete?')">Delete</a> 
0

inxde.phpにidパラメータを渡すとIDが表示されません。

<?php 
//including the database connection file 
include("config.php"); 

$result = mysqli_query($mysqli, "SELECT * FROM users ORDER BY id ASC"); 
// using mysqli_query instead 


while($res = mysqli_fetch_array($result)) 
    { 
?> 
<table> 
<tr> 
    <td class="long"><?php echo $res['nameFirst'];?></td> 
    <td class="long"><?php echo $res['nameLast'];?></td> 
    <td class="long"><?php echo $res['email'];?></td> 
    <td><a href="edit.php?id=$res[id]">Edit</a></td> 
    <td><a href="delete.php?id=<?php echo $res['id']; ?>" onClick="return confirm('Are you sure you want to delete?')">Delete</a></td> 
</tr> 
<?php } ?> 

</table> 
0

固定これらの行:あなたは文字列として列名を渡しているので、

<td><a href="edit.php?id=$res['id']">Edit</a></td> 
<td><a href="delete.php?id=$res['id']" onClick="return confirm('Are you sure you want to delete?')">Delete</a></td> 

$res[id]ニーズは、$res['id']なるように、以下の正しいコードを参照してください。

+0

ありがとうございました。 – user3858836

0

あなたがHTMLやPHPのコードをめちゃくちゃにされている、ため、この

<td><a href="edit.php?id="<?php echo $res['id']; ?>>Edit</a></td> 
<td><a href="delete.php?id="<?php echo $res[id]; ?> onClick="return confirm('Are you sure you want to delete?')">Delete</a></td> 

delete.php

$result = mysqli_query($mysqli, "DELETE FROM users WHERE id=".$id); 
+0

ありがとうございました。 – user3858836

1

をエコーするのを忘れました。

そして、PHPコードはIDを生成していません。

PHPファイル、HTML、Javascriptコードは、どこでもPHPファイルに書き込むことができます。

しかし、HTMLコード(何も指定されていない場合はデフォルトのもの)とJavascriptコードであるPHPコードのいずれかを言及する必要があります。

行に変更します

<td><a href="delete.php?id=$res[id]" onClick="return confirm('Are you sure you want to delete?')">Delete</a></td> 

へ:

<td><a href="delete.php?id=<?php echo $res['id'];?>" onClick="return confirm('Are you sure you want to delete?')">Delete</a></td>