[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 メーリングリストの案内