2012-08-16 10 views
5

Este topic es poco similar a otra pregunta mía sobre dba.stackexchange.com, pero el problema es diferentecómo obtener los datos si hay muchas solicitudes

Tengo dos tablas en mi base de datos, una tabla es user_app en el cual la información del usuario se almacenan, mesa son como:

+--------------+--------------+------+-----+-------------------+-----------------------------+ 
| 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    |        | 
+--------------+--------------+------+-----+-------------------+-----------------------------+ 

otra mesa es la mesa creativa a través del cual puedo recuperar el anuncio de que el usuario:

+--------------+--------------+------+-----+---------+----------------+ 
| 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 |    | 
+--------------+--------------+------+-----+---------+----------------+ 

Aquí está mi código 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 

En este escenario, tengo que enviar un solo anuncio para el usuario una vez en 24 horas, lo que yo estoy enviando en formato JSON. Además, si un usuario ha instalado nuestras diferentes aplicaciones, debo enviarles solo un anuncio solo durante todo el día. En esto, PACKAGE_NAME representar a nuestras aplicaciones, que estoy tratando de lograr esto mediante el uso de una entrada de la bandera de tiempo, así:

$flag = date('dmy'); 

pero la forma de lograr un anuncio al día, ya solo queda la investigación sobre esto. Amablemente mire este problema.

Actualización: Mi disculpas, no me menciono antes, pero quiero enviar sólo un aviso de usuario de gran cantidad de solicitudes para el anuncio de. Por ejemplo, el usuario puede enviar un número de solicitudes e instalar nuestra aplicación, y luego no recibe el mismo anuncio en cada solicitud. Acaba de recibir un solo anuncio en todo el día.

+0

si este tema no es comprensible, entonces por favor me comentan que se me quite mi esfuerzo extra en este problema – Shashank

Respuesta

1

intenta agregar una matriz multidimensional del resultado de la consulta:

while($obj = $rss->fetch_object()) { 
    $array[$obj->cid]['cid'] = $obj->cid; 
    $array[$obj->cid]['title'] = $obj->title; 
    $array[$obj->cid]['description'] = $obj->description; 
    $array[$obj->cid]['iconlink'] = $obj->iconlink;  
    $array[$obj->cid]['marketlink'] = $obj->marketlink; 
    $array[$obj->cid]['package_name'] = $obj->package_name; 
    } 


    echo '<pre>'; 
    var_dump(json_encode($array)); //return ad in json 
    echo '</pre>'; 
+0

@ atomon3r: no resuelve mi problema, estoy buscando una solución en la que tengo que enviar un anuncio de formato json, que es el eco de arriba en el código para el usuario a la vez en 24 horas del día. O puedo hacerlo en función del tiempo, cuando el usuario solicita recursos o los usa a través de la identificación de inserción, cuando los datos de solicitud del usuario se insertan en db. Puedo probar ambos, pero todavía no puedo usar o no puedo aplicar – Shashank

Cuestiones relacionadas