各ユーザーがクリックしたリンクを追跡するテーブルが1つあり、リンクを含む別のテーブルがあります。各テーブル構造は次のとおりです。
リンク: id | リンク| 値| date_added
クリック: user_id | link_id | date_clicked
現在、これは検索を実行するために使用しているコードであり、機能します。クリックされたリンクテーブルは非常に高速に大きくなるため、より効率的な方法があるかどうかを知りたいだけです。
$history_query = mysql_query("SELECT * FROM clicked_links WHERE user_id = '$id'") or die(mysql_error());
$history_array = array();
while ($h = mysql_fetch_array($history_query)) {
$history_array[] = $h['link_id'];
}
$clicked = implode(',', $history_array);
$link_query = mysql_query("SELECT * FROM chip_links WHERE id NOT IN ($clicked) ORDER BY value DESC") or die(mysql_error());
while ($r = mysql_fetch_array($link_query)) {
echo "<div id='claim{$r['id']}' style='text-align: center; font-weight: bold; font-size: 18px; float: left; width: 183px;'>
<a href='{$r['link']}' id='{$r['id']}' class='collect' target='_blank'>
Claim {$r['value']} points!
</a>
</div>";
}