私はちょっとしたレポート作成に取り組んでおり、一時テーブルを使用する必要があると考えています。私のコードは、その日にそのシステムとやり取りするすべてのユーザー Cookie を取得するために API 呼び出しを実行します。
これで、すべての Cookie とそれらが使用するブラウザーのタイプを含むテーブルができました。API によって提供された Cookie の配列をループして、それぞれの sql ルックアップを実行し、diff ブラウザーのカウンターをインクリメントすることができます。さまざまなブラウザーによって行われたブラウザー アクセスの数を報告できます。
ただし、ご想像のとおり、Cookie が大量にある場合 (ある場合)、これには非常に時間がかかる可能性があります。
私が知っていることから、解決策は、渡されたCookieの一時テーブルを作成し、それをCookieデータテーブルに内部結合してから、
select count(id),broswer ... group by browser
以下は、私が試してやりたいことのより多くのコードビューです:
$json = file_get_content($apiURL);
$cookies = '';
foreach($json as $val){$cookies .= ','.$val['cookie']; }
$cookies = substr($cookies,1);
mysql_query('CREATE TEMPORARY TABLE passedcookies (
`cookie` varchar(200) NOT NULL,
PRIMARY KEY(cookie)
) values ($cookies);')
mysql_query('SELECT count(cd.id), cd.browser FROM cookiedata cd
INNER JOIN passedcookies pc
ON pc.cookie = cd.cookie
GROUP BY cd.browser;');
mysql_query('DESTROY TEMP TBL;');
一時テーブルを破棄する必要がありますか? いつ破壊されますか?3 人のユーザーがレポートを実行すると、それぞれが独自の一時テーブルを取得しますか?
助けてくれてありがとう