人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PhP4.2 mysql4 に関して

mysqlのデータを削除する際に。
phpの配列を使ってmysql上のデータを削除しようと思います。

test.php
--------------------------
$newarr=array(0=>"太郎",1=>"はなこ",2=>"次郎")
$query="DELETE FROM rog WHERE name='".$newarr."'";
for($i=0;$i<count($newarr);$i++){
mysql_query($query)
or die("エラー");}
------------------------

上記がうまく作動しません。
何か間違いがありますでしょうか?
配列を使ったmysqlでの操作を教えてください。

どなたか詳しい方ご教授おねがいします。


●質問者: rrr3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:DELETE MySQL name PHP test
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● battan
●60ポイント

配列はあくまでも配列として展開されます。

ですから、そのままではSQL文としては成立しません。

ですから、

--------------------------

$newarr=array(0=>"太郎",1=>"はなこ",2=>"次郎")

for($i=0;$i<count($newarr);$i++)</p>

{$query="DELETE FROM rog WHERE name='".$newarr[$i]."'";

mysql_query($query)

or die("エラー");}

------------------------

のように配列の回数分QUERYを実行するか、

--------------------------

$newarr=array(0=>"太郎",1=>"はなこ",2=>"次郎")

$query="DELETE FROM rog WHERE ";

for($i=0;$i<count($newarr);$i++)</p>

{$query .= "name='".$newarr[$i]."'";

if($i != count($newarr) - 1){

$query .= " or ";

}

}

mysql_query($query)

or die("エラー");}

------------------------

のように配列を展開してSQL文にしてやる必要があります。

上記の場合、結果的に実行されるSQL文は、

DELETE FROM rog WHERE name='太郎' or name='はなこ' or name='次郎';

となります。

http://dummy.co.jp

◎質問者からの返答

--------------------------

$newarr=array(0=>"太郎",1=>"はなこ",2=>"次郎")

for($i=0;$i<count($newarr);$i++)</p>

{$query="DELETE FROM rog WHERE name='".$newarr[$i]."'";

mysql_query($query)

or die("エラー");}

------------------------

これをやろうと思います。

は何ですか?


2 ● Mook
●10ポイント

一回のクエリで実行すると

<?
 $newarr = array("'太郎'","'はなこ'","'次郎'");
 $query="DELETE FROM rog WHERE name IN (".implode(",", $newarr).");";
mysql_query($query)
?>

でもできるかと思います。

実際のクエリ文は、下記のものになります。

DELETE FROM rog WHERE name IN ('太郎','はなこ','次郎');

PHP implode


3 ● Yota
●10ポイント

これについてはもう結論でているような感じですので、ポイントとかつけないでください。連絡したいことがあったので。

1181199297でPhP4.2 mysql4に関して「解説をおねがいできますか」と書いてありますが、たぶん回答回数使い切ったせいで書き込めません。

コメントいつも開けておいたほうがいいですよ。

http://q.hatena.ne.jp/1181199297

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ