このトピックは、dba.stackexchange.com での私の他の質問とほとんど似ていませんが、問題は異なります
データベースに 2 つのテーブルがあります。1 つはユーザー情報が格納される user_app テーブルで、テーブルは次のとおりです。
+--------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| apikey | varchar(32) | NO | | NULL | |
| app_id | varchar(16) | NO | | NULL | |
| appidt | varchar(100) | NO | | NULL | |
| imei_num | varchar(32) | NO | MUL | NULL | |
| app_version | varchar(20) | NO | | NULL | |
| package_name | varchar(100) | NO | MUL | NULL | |
| stamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| sdk_version | float | NO | | NULL | |
+--------------+--------------+------+-----+-------------------+-----------------------------+
他のテーブルは、ユーザーへの広告を取得するためのクリエイティブ テーブルです。
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| campaign_id | tinyint(4) | NO | | NULL | |
| status | tinyint(4) | NO | | NULL | |
| type | varchar(20) | NO | | NULL | |
| title | varchar(40) | NO | | NULL | |
| description | varchar(100) | NO | | NULL | |
| iconlink | text | NO | | NULL | |
| marketlink | text | NO | | NULL | |
| app_id | varchar(16) | YES | | NULL | |
| package_name | varchar(200) | YES | MUL | NULL | |
+--------------+--------------+------+-----+---------+----------------+
これが私のphpコードです:
$rss = $mysqli->query(" SELECT id as cid,
title, description,
iconlink, marketlink,
package_name FROM `creative`
WHERE package_name <> '".$pkg."' AND id = 16 "
);
$arr = array();
while($obj = $rss->fetch_object()) {
$arr = $obj;
}
//$uappid = $arr -> uid; //user app id for track
$cid = $arr -> cid; // creative id
//$campid = $arr -> campaign_id;
$title = $arr -> title;
$desc = $arr -> description;
$ilink = $arr -> iconlink;
$mlink = $arr -> marketlink;
$data = array('id'=>"$cid", 'title'=> "$title", 'description'=> "$desc", 'iconlink'=> "$ilink",'marketlink'=>"$mlink");
$creative = json_encode($data); //return creative json if imei is there
$response = array('success' => "true", 'result'=>"$creative", 'delay'=>"120000");
echo json_encode($response); //return ad in json
このシナリオでは、1 つの広告を 24 時間に 1 回ユーザーに送信する必要があり、これを json 形式で送信しています。また、ユーザーが別のアプリをインストールした場合、1 日で広告を 1 つだけ送信する必要があります。この場合、package_name はアプリケーションを表します。次のように、時間のフラグ エントリを使用してこれを達成しようとしています。
$flag = date('dmy');
しかし、1日に1つの広告を達成する方法、私はこれについて研究しています. この問題をよく見てください。
更新:申し訳ありませんが、以前は言及していませんでしたが、多くの広告リクエストから 1 つの広告のみをユーザーに送信したいと考えています。たとえば、ユーザーが多数のリクエストを送信してアプリをインストールすると、すべてのリクエストで同じ広告が表示されるわけではありません。彼は 1 日で 1 つの広告を受け取りました。