クエリ文をループから出して読み込みを速くしたいです
解決したいこと
現在、以下のようにループ内にクエリ文を配置し読み込みをしております。
しかし、読み込みにかなり時間がかかるようになり(数分?)、ちょくちょく更新したい内容なので調べたところ、ループ内にクエリ文を入れるとループの回数全てのデータを読み込む?というような内容で遅くなっているのではないか、というところに辿り着きました。
そこで、ループ外で1回全てを読み込み、そこから必要なものだけを表示させるようにしたいのですが、どのように書いたら良いか分かりませんでした。
と言うのも、規則性のないidを指定したいので、そこで躓いております。
該当するソースコード
<?php
$server = "XXX";
$database = "XXX";
$user = "XXX";
$password = "XXX";
$conn = odbc_connect("Driver=SQL Server;Server=$server;Database=$database;", $user, $password);
$array = [
"0001",
"0036",
"0121"
];//こういった形で指定したいidが規則性なく続きます。
foreach($array as $id) {
$name = "SELECT XXX from XXX where id='$id'";
$name_rst = odbc_exec($conn, $name);
echo mb_convert_encoding(odbc_result($name_rst,1),"utf-8","sjis");
}
odbc_close($conn);
?>
少々省略・変更していますが、こういった流れです。
イメージとしては、これを
$name = "SELECT XXX from XXX";
$name_rst = odbc_exec($conn, $name);
foreach($array as $id) {
echo mb_convert_encoding(odbc_result($name_rst,※'id'='$id'※),"utf-8","sjis");
}
のようにできれば達成できるのか?と考えております。
何か良い方法ご存じでしたら、恐れ入りますがお力添えをお願い申し上げます。
0 likes