私は、ポーリング通知機能を刺激するアンドロイドアプリケーションを開発しています。したがって、私はサーバーに新しいデータを要求し続けるサービスを作成しました。しかし、私はデータベースにSeenと呼ばれるテーブルを使用しました。このテーブルは、特定のuser_idについてサーバから尋ねられ、そのテーブルにnews_idが存在しなかった場合に通知を生成します。新しいデータのみデータベースから取得
問題は初めてアプリケーションを起動するときです。ユーザーを考慮しているサーバーがニュースを見なかったため、データベースからすべてのデータを取得します。
誰でも私を助けることができますか?
私はこのアイデアで解決することを考えました:最初にアプリケーションを起動するとき。新しいメッセージを0にするには、そのuser_idを持つすべてのニュースを見たテーブルに挿入します。しかし、私はそれが効率的ではないと思う。
これは私のデータベースと私のPHPスクリプト
ユーザーテーブル表
見User_ID | User_Name
--------------------
1 | John
2 | Carl
3 | Tomas
4 | Adam
5 | Nancy
ニュース表
News_ID | News_Text | news_date
---------------------------
1 | Hello World | CURRENTDATE()
2 | This is My car | CURRENTDATE()
3 | I had Ate pizza| CURRENTDATE()
4 | Leave Me Alone | CURRENTDATE()
5 | C++ Programming| CURRENTDATE()
です
ID | User_Id | News_Id --------------------------- 1 | 1 | 2 2 | 1 | 3 3 | 4 | 1 4 | 5 | 3 5 | 1 | 4
これは私のPHPコードであり、それはまたSeen_news表には表示されませんでしたニュースを得るために、私のクエリを示す:
<?php
require('config.php');
$conn = mysqli_connect($servername, $username, $password, $db);
$query="SELECT * FROM news WHERE news_id NOT IN (SELECT news_id FROM news_seen WHERE user_id = '".$_GET['id']."')";
$result = mysqli_query($conn,$query);
$rows = array();
echo mysqli_error($conn);
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
echo json_encode($rows);
?>
は、私はPHPスクリプトにUSER_IDを送信し、ベースいたとすると結果にはjsonファイルが表示されます。
あなたはまだあなたの問題への解決策を見つけましたか? – gmfm
はい私の問題を解決しましたありがとうございます。 –