آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

راهنمایی در مورد دریافت اطلاعات از سرور 

علی  11 سال پیش  11 سال پیش
+1 0

 

با سلام:

من یک سری اطلاعات رو آنلاین از سرور می خونم و در گوشی نمایش میدم مثل لیستی از خبرها.

یک سرور local از sqlite هم داخل گوشی راه انداختم که هر بار از سرور اطلاعات لود میشه میریزه داخل sqlite گوشی.

حالا چکار کنم که هر بار دارم لود می کنم اطلاعات رو از سرور اطلاعات تکراری رو نریزه داخل slite گوشی؟ اینم کد سمت php . 

اگه لازم هست کد ارسال به php رو هم بزارم.

 
 function read(){
    $connection = connectToDatabase();
    $result = mysqli_query($connection,  "SELECT * FROM news");
    $output = array();
    while($row = mysqli_fetch_array($result)) {
        $record = array();
        $record['news_id'] = $row['news_id'];
        $record['news_title'] = $row['news_title'];
        $record['news_desc'] = $row['news_desc']; 
        $record['news_date'] = $row['news_date'];
        $output[] = $record;
    }
0 0
منظور از اطلاعات تکراری چیه؟چه اطلاعاتی نباید تکراری باشن؟ (11 سال پیش)
0 0
مثلا یک خبر رو دارم تو لیست ویو نشون میدم وقتی آنلاین لود کرده . وقتی آفلاین میشم میام از رو sqlite می خونم همونو.تا اینجا درست. حالا دفعه دوم همون خبر رو آنلاین لود می کنم وقتی میام آفلاین میبینم دوباره زیر همون خبر اولی همون خبر اضافه میشه. منظورم خیلی سخت نیست. (11 سال پیش)
0 0
اها ممنون دوست عزیز . سمت webservice گوشی چه کدی رو بنویسم که همراه لینک ایدی رو هم بفرسته به php? (11 سال پیش)
0 0
(11 سال پیش)
+1 0
در مورد آندروید اطلاعی ندارم. در گوگل این عبارتو سرچ کنید: how to post data to server in android (11 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
محسن موحد  11 سال پیش
+2 0

همون خبرو آنلاین لود میکنم من متوجه نمیشم.یکمی سخت داری توضیح میدی ولی کلیت اون چیزی که برداشته منه اینه که یه سری اطلاعات از سمت سرور دریافت میکنی و در گوشی نمایش میدی.دفعه ی دیگه اون خبرهایی که نمایش داده شده رو با آنلاین شدن نمیخوای از بانک خونده بشه.

یک راه اینه که آیدی مطالبی که سمت گوشی میفرستی رو در sqlite ثبت کنی و طبق اون آیدی در سرور شرط کنی تنها آیدی هایی سلکت بشن که بزرگتر از آیدی ای که از سمت گوشی به سمت سرور میفرستی.
اولین سری چون چیزی در گوشی ثبت نشده بنابراین تمام اطلاعات دیتابیس نمایش داده میشه. و سری بعدی آخری آیدی مطلب که در گوشی نگه داشتیو باید پاس بدی سمت سرور.
شرط به این صورت در میاد: (متغیر آیدی همون آیدی هست که از سمت گوشی فرستادی)

 $result = mysqli_query($connection,"SELECT * FROM news WHERE (`id` > '{$id}')");

 

راه دیگه اینه که تمام مطالب درون دیتابیس زمانی که ثبت میشن (سمت سرور) یک فیلد timestamp هم داشته باشن تا زمان ثبتشون مشخص باشه و طبق timestamp اطلاعات جدیدو فراخوانی کنی.
البته همون راه اول بهتره.

پاسخ به سوال 
علی  11 سال پیش
0 0

Bidak جان من سمت گوشی رو درست کردم و این مقدار News_id داره آخرین آیدی رو از Sql گوشی میگیره و باید بفرسته . ولی سمت php با کد بالا که دادی چطوری ست کنم؟ به جای url چی بزارم ؟ اولی کد های سمت اندروید و دومی سمت سرور.

  String url = "http://192.168.0.0/android/note_server/news.php";
        ArrayList params = new ArrayList();
        params.add(new BasicNameValuePair("action", "read"));
		        params.add(new BasicNameValuePair("News_id", news_id ));
 

<?php if (isset($_REQUEST['action'])){ $action = $_REQUEST['action']; } else { echo "Invalid Data"; exit; } if ($action=="read"){ read(); } /** * */ function connectToDatabase(){ $connection = mysqli_connect("localhost", "", "", ""); mysqli_set_charset($connection,"utf8"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } return $connection; } function read(){ $connection = connectToDatabase(); $result = mysqli_query($connection, "SELECT * FROM news WHERE ('news_id' > '{$News_id}')"); $output = array(); while($row = mysqli_fetch_array($result)) { $record = array(); $record['news_id'] = $row['news_id']; $record['news_title'] = $row['news_title']; $record['news_desc'] = $row['news_desc']; $record['news_date'] = $row['news_date']; $output[] = $record; } echo json_encode($output); mysqli_close($connection); }
0 0
كسى نميتونه جواب سوال منو بده ؟ (11 سال پیش)
0 0
با همون متغیر REQUEST مقدار news id رو در بیار و در کد بزار. (11 سال پیش)
0 0
من منظورتون رو نگرفتم . یعنی چی؟ (11 سال پیش)
+1 0
در مورد php ایش میگم شما متغیر هایی که ارسال میکنید باید news id رو دریافت کنید بقیه کد مشکلی نداره (11 سال پیش)
پاسخ به سوال 
علی  11 سال پیش
0 0

Bidak جان من این کد رو کجا بزارم که REQUEST داده باشم؟

 $News_id= $_REQUEST['News_id'];
0 0
ابتدای کد چک کنید ببینید اگه وجود داره این متغیرو مقدار دهی کنید. (11 سال پیش)
0 0
مثل همون action باید چک بشه؟ میشه همون تیکه رو بنویسید. من نتونستم (11 سال پیش)
0 0
بله مثل action باید بنویسید. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .