[PHP-users 30852] (再掲)PHPからデータベースへのデータ格納時の処理について
A syokora
iacta_alea-est @ hotmail.co.jp
2006年 12月 1日 (金) 11:01:22 JST
すいません。やはり解決できなかったので、再度質問したいのですが、よろしいで
しょうか?
もう一度内容を挙げますと・・
PHP5からデータベース(sqlite)を操作して、レコードの要素を比較して,1つでも同
じ値が
あったら、差分をとってレコードを統合するということをしたいのですが。
DB:word TABLE:A field:word,word1・・
word word1 word2 word3 word4 word5 word6
ツール tool tools
ファイル file ふぁいる
データ data
テーブルはこのようになっております。そして、問題は以下のプログラムを実行して
$value
をレコードに格納すると、
word word1 word2 word3 word4 word5 word6
ツール tool tools
ファイル file ふぁいる
データ data
データー データ data
tool つーる ツール
となってしまいます。
しかし、1つめのレコードと、5つめのレコードで"ツール"または"tool"という値が重
複しています。
そこで、
ツール tool tools つーる
というように、もし、テーブルに格納する際に、同じ値を含むレコードがあったら、
差分を既にあった
レコードに加える。なければ、新たにINSERTするということをしたいのです。(3,4の
レコードも同様に)
この記述の仕方がやはり分からなくて。大変長くなってしまいましたが、どうか、お
教えを願えない
でしょうか?
/////配列をレコードに格納//////
if ($db = sqlite_open("SQLiteManager/word", 0666, $sqliteerror))
{
$value = array(array( 'データー', 'データ', 'data' ),array( 'tool', '
つーる', 'ツール' ));
foreach($value as $nkey => $arrValue)
{
foreach($arrValue as $nkey2 => $strValue)
{
$arrValue[$nkey2] = mb_convert_encoding($strValue, "UTF-8",
"Shift_JIS");
}
$insert = <<< EOM
INSERT INTO A(word, dougigo1, dougigo2,
dougigo3,dougigo4,dougigo5,dougigo6) VALUES
('{$arrValue[0]}', '{$arrValue[1]}', '{$arrValue[2]}', '{$arrValue[3]}',
'{$arrValue[4]}',
'{$arrValue[5]}', '{$arrValue[6]}');
EOM;
sqlite_query($db,$insert);
}
}
_________________________________________________________________
MSNサーチは Live Search に進化します http://get.live.com/search/overview
PHP-users メーリングリストの案内