2017-03-07 5 views
-4

データベースには、他の列とともに「id」と「reply_id」列があります。 メイン 'ID'を使用してデータを削除しようとしていますが、同時に他の行が 'id'と 'reply_id'が一致するかどうかを確認する必要があります。一致が見つかった場合は、 'id'に一致する 'reply_id'を持つすべての行を削除する必要があります。PDOで2つの異なるIDを使用してデータベースからデータを削除する方法

たとえば、1,2,3,4,5,6,7,8,9,10の 'id'、0、0、0、0の 'reply_id'の10個の行があります。 8、8、8、9、9、10.数字8の「id」を削除しようとすると、「reply_id」番号8のすべての行も削除する必要があります。

私はPHPを学んでいるので、私は専門家ではありません。以下のコードは、 'id'の行だけを削除し、同じ番号に一致する 'reply_id'の行は削除しません。

 if(isset($_POST['yesdelete'])){ 

      $delete_id = $_POST['deleteid']; 

      $db->query('DELETE FROM msgs WHERE id = :id'); 
      $db->bind(':id', $delete_id, PDO::PARAM_INT); 

      $run = $db->execute(); 

      if($run){ 

       redirect('my-messages.php'); 

      } 

     } 
+1

@RiggsFollyはそれがデフォルトで存在し、最も重要なことはありませんと言っているよう.. 'クエリ()' '(準備とは異なり、直接実行)'ので、あなたは、 ')(バインド'に何をしようとしています「縛る」ものは何もない。 – Xorifelse

+0

@ Xorifelse良い点私は完全にそれを逃した – RiggsFolly

答えて

-1
if(isset($_POST['yesdelete'])){ 

      $delete_id = $_POST['deleteid']; 

      $db->prepare('DELETE FROM msgs WHERE id = :id or reply_id = :id'); 
      $db->bind(':id', $delete_id, PDO::PARAM_INT); 

      $run = $db->execute(); 

      if($run){ 

       redirect('my-messages.php'); 

      } 

     } 
+0

申し訳ありませんが、私はチェックしていない、主な問題はreply_idの条件が必要です –

+1

[コメント](http://stackoverflow.com/questions/42639010/how-to-delete参照) -data-from-database-using-2-different-id-with-pdo#comment72405622_42639010)と[comment](http://stackoverflow.com/questions/42639010/how-to-delete-data-from-database- #2と異なる-idsを使用する#comment72405643_42639010) – RiggsFolly

+0

これで、 ':id'を2回使用する問題が発生しました。それも動作しません – RiggsFolly

関連する問題