0

私はテーブルをしなければなりません:

tb_document           tb_sentence
=================     ===========================================
|doc_id|document|     | id | sentence_id |sentence | doc_id|
=================     ===========================================

documentからデータを取得したいtb_document。データはテキストであり、データを解析して文になります。tb_sentenceのすべてのドキュメントに対してのみ最大50文を保存する必要があります。

ここにコードがあります:

foreach ($content as $doc_id => $sentences){ //$content is variable that save document from tb_document
   $i = 0;
   foreach(preg_split('/\\.\\s*/', $sentences) as $current_sentence){
      $q = mysql_query("INSERT INTO tb_sentence SET doc_id = {$doc_id}, sentence_id = {$i}, sentence = '{$current_sentence}'") or die(mysql_error());
      $i<51; $i++;
   }
}

ただし、それでもデータ全体が保存されます。私を助けてください。ありがとうございました :)

4

1 に答える 1

3

コードでは、$i51 と比較しますが、比較では何もしません。試す:

foreach ($content as $doc_id => $sentences){ //$content is variable that save document from tb_document
   $i = 0;
   foreach(preg_split('/\\.\\s*/', $sentences) as $current_sentence){
      $q = mysql_query("INSERT INTO tb_sentence SET doc_id = {$doc_id}, sentence_id = {$i}, sentence = '{$current_sentence}'") or die(mysql_error());

      if(++$i >= 50) 
          break; 
   }
}

breakステートメントはループforeachから抜けます。

于 2012-10-09T15:29:44.297 に答える