0

問題を絞り込むトピックがいくつかありますが、誰もそれを解決することを許可していません。データベースのテーブルの数をカウントし、結果を新しいcsvファイルに書き込みたい用語のcsvファイルがあります。新しい配列を作成する必要があります。各キーは最初の配列の用語であり、値はデータベース内の関連するレコード数になります。入力の例を次に示します。

乳糖

セリン

そして、私はこのようなものを手に入れたいです:

乳糖、25

セリン、3

だから私は値がcsvファイルの用語である配列を作成しました。次に、この配列の値をSQLクエリに入力します。そして、私はインターネットやphpドキュメントで正しい方法を見つけることができませんでした。最後の行は完全に失敗しますが、タスクを管理するためのより狭い手段であるように思われたので、私はそれを試しました。

誰かが私を助けてもらえますか?

前もって感謝します !

$termslist= array();

$file = fopen('fileterms.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
  foreach ($line AS $molindice => $molvalues) 
  {
    if ( ! in_array( $molvalue, $termslist ) )
            {array_push($termslist, $molvalues);}
  }
}

fclose($file);


//print_r ($termslist);

$molnumbers = array();

foreach ($termslist as $ancientkey => $ancientvalue)
{
    echo $ancientvalue;
    $sql3 = "SELECT content from mols WHERE content like '% $ancientvalue %'";
    $result3 = mysql_query($sql3)or die(mysql_error());
    $count3 = mysql_num_rows($result3);
    echo $count3;
    $molnumbers [$ancientvalue['molnames']] = $count3['quantities'];
}
4

2 に答える 2

0

変化する:

$molnumbers [$ancientvalue['molnames']] = $count3['quantities'];

に:

$molnumbers[$ancientvalue['molnames']] = $count3['quantities'];

または:

$molname = $ancientvalue['molnames'];
$molnumbers[$molname] = $count3['quantities'];
于 2012-07-24T10:17:12.070 に答える
0

行で:

if ( ! in_array( $molvalue, $termslist ) )

次のように小さなエラーがあります。

if ( ! in_array( $molvalues, $termslist ) )

次に、この行で:

$molnumbers [$ancientvalue['molnames']] = $count3['quantities'];

$ancientvalue はすでに値 (または molname) 自体であり、配列自体ではありません。したがって、次の行のみが必要です。

    $molnumbers [$ancientvalue] = $count3['quantities'];

次に、数値を配列の正しい部分に配置する必要があります。SQL自体の場合:

$sql3 = "SELECT content from mols WHERE content like '% $ancientvalue %'";

ここで、%BLANKancientvalueBLANK% を検索しているように思えますが、それが目的ではなく、代わりに %ancientvalue% を探している場合は、行を次のように変更する必要があります。

$sql3 = 'SELECT content from mols WHERE content like \'%'.$ancientvalue.'%\'';
于 2012-07-24T10:45:10.190 に答える