PHPを使用してMySQLデータベースのIPと広告ネットワークを検索しようとしています。基本的には、24時間以内に同じ訪問者が同じネットワークに送られないように、さまざまな広告ネットワーク間で訪問者をローテーションします。訪問者は私たちのPHPページに当たったとき複数のMySQLテーブルを検索して比較する
ip_addressesテーブル
id, address, network_id
1, 120.110.140.223, 1
2, 120.110.140.223, 3
3, 115.157.247.46, 1
ネットワークテーブル
id, name, clicks, status, order
1, Random Name, 200, Active, 1
2, Example Name, 500, Inactive, 3
3, Other Name, 100, Active, 2
は基本的に、私はnetworks
テーブルから特定のid
をエコーすることができるようにする必要があります。 のIDは、訪問者のIPアドレスのip_addresses
テーブルにまだリストされていません。ネットワークはorder
列で注文し、status = Active
にする必要があります。
私はActive
に自分status
セットを持つすべてのネットワークのid
年代のリストを取得するためにPHPを使用する方法について考え、正しくこのように命じた:私は最初に到達するまで通じ
SELECT id FROM networks WHERE status = 'Active' ORDER BY id ASC
そしてちょうどループid
は、そのIPのip_addresses
テーブルにありません。しかし、私はそのループを行う方法や、ip_addresses
テーブルにない最初のnetwork_id
が見つかると、それを止める方法がわかりませんでした。
何かを明確にする必要がある場合は、私にお知らせください。ありがとう!
を渡すことによって、サブクエリから
NOT IN
を使用することができます。その中間テーブルでは、ユーザーを検索し、ネットワークがフェッチされたら削除して、次のページに進むことができます –