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

favorite ساختن سمت سرور

h_uk2009  11 سال پیش  11 سال پیش
0 0

سلام برو بچس عزیز

بنده پروژ] ای تحت وب رو شروع کردم و توی دیتابیس وبم یگ رکوردی به اسم isfavorite تشکیل دادم که از نوع بولین هست و من از اپلیکیشنم میام و مثلا مطلبی رو فیوریت میکنم و اون مقدار صفر رو مثلا 1 میکنم که برنامه هم به خوبی کار میکنه ! اما مسله اینه  !! :

هر نفر که این اپو دانلود کنه ازون فیلد isfavorite که آخرین شخص تغییرش داده میخونه و در نتیجه هرکسی تغییر بده توی رکورد مورد علاقه یا همون favorite نفر بعدی هم میتونه اونو تغییر بده .... حالا بگید چه کار کنم !!!؟؟؟؟؟؟؟؟؟؟؟؟

اگه نیاز به اینه که یک دیتابیس روی لوکال داشته باشم خداوکیلی نگین که سکته میکنم ! که حتما از وب بخوتم بریزم رو لوکال ! حالا اگه روششم اونه لطفا توضیح بدین یا اینکه بشه با پریفرنسس یجوری سوری سوری ردش کرد

+1 0
این تاپیک رفته بود پایین گفتم بیرمش بالا بنده خدا بدجوری کارش گیرکرده ! لطفا دوستان کمکش کنند! (11 سال پیش)
 برای این سوال 7 پاسخ وجود دارد.
پاسخ به سوال 
احمد اسدی  11 سال پیش
+3 0

هر دستگاهی یک شناسه منحصر بفرد رو داره (AID) که میتونین موقع درخواست به سرور این AID  رو هم ارسال کنید.

حالا شما یک فیلد به جدول اون favorite ها اضافه کنین بنام user_aid

هرموقع کاربری مطلبی رو isfavorite کرد، شما AID اون کاربر رو هم به سرورت بفرست و توی دیتابیست ذخیره کن که سری بعد اگه میخواد isfavorite ترو یا فالس بشه، از طریق اون AID توی دیتابیس Where بشه و فیلد رو تغییر بده.

به همین راحتی :)

0 0
وای مرصی فقط این aid که گفتی یعنی چه میشه یک مثالی بزنی ؟ (11 سال پیش)
0 0
با چه دستوری باید aid اون شخص رو بگیرم ؟ (11 سال پیش)
0 0
با چه دستوری باید aid اون شخص رو بگیرم ؟ (11 سال پیش)
پاسخ به سوال 
احمد اسدی  11 سال پیش
+1 0

 

برای گرفتن Device ID :

//getting unique id for device
String id = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);

 

0 0
مرصی دست درست چکش کنم ببینم چی میشه ... (11 سال پیش)
0 0
توی کلاس .G صداش میزنم ببینم چیو میخونه (11 سال پیش)
0 0
کد رو ویرایش کردم، از کد جدید استفاده کنید :) (11 سال پیش)
0 0
آقا این ارور میدهههههههههههههههههههههه چرااااااااااااااااااااااااااااااا (11 سال پیش)
0 0
کد جدید رو استفاده کنید! (11 سال پیش)
0 0
ای خدا خیرت بده واقعا دمت گرم (11 سال پیش)
پاسخ به سوال 
h_uk2009  11 سال پیش
0 0

ببین من فیلدهام ایناس

news_id که کلیده

news_desc

is_fav

بعد حالا میام با کوعری سمت وب آپدیتش میکنم به این صورت :

    mysqli_query($connection, "UPDATE news SET is_fav = not is_fav WHERE news_id=$id");
 

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

حالا که گفتی فیوریتو بر اساس اون کد گوشی طرف آپدیت کنم گیج شدم آیا نیاز به اینه که یک جدول مخصوص کاربرا بسازم یا هرچی ؟

+1 0
عزیزجان، من الان چیزی که برداشت کردم با اون بحث قبلی یکم فرق داره. شما میخوایین هرموقع کاربری، مطلبی رو که fav کرد، اون مطلب به لیست علاقه مندی های اون کاربر نشون بده، آره ؟! (11 سال پیش)
0 0
آره دقیقا (11 سال پیش)
+1 0
خب توضیح بفرما این کوئری که آپدیت کردین، چه موقع Insert میشه ؟ (11 سال پیش)
0 0
اینزرت نمیشه فیلد فیوریت توی جدول تعریف شده نیازی نیست اینزرت بشه آپدیت میشه دیگه با متد همون استاد ! (11 سال پیش)
0 0
من میخوام هرکاربر لیست علاقمندی خودشو داشته باشه (11 سال پیش)
0 0
مهندس توروخدا یک راه حل روش فک کن بهم بده ! فکک کن خودت میخواسی اینکارو بکنی چه کاری میکردی ؟؟! (11 سال پیش)
+1 0
نگاه شما کلآ ساختارتون اشتباهه، الان دقیقآ شما دارید توی یک فیلد که مختص به یک مطلب هستش Fav رو دستکاری میکنید. شما باید درکنارش یه جدول دیگه ای بنام fav_new همراه با فیلد های aid, news_id داشته باشین که هربار کاربری مطلبی رو موردعلاقش کرد، یک Insert به همین جدول بشه. مثلآ میشه کاربر با فلان AId و فلان News . که دیگه واسه خوندش باید از همین دوتا جدول استفاده کنید. (11 سال پیش)
0 0
یعنی میگی من is_fav جدول خودمو بیخیال بشم اما سوال اینجاست که من باید اونوقت به ازای هر تعداد آی دی که دارم توی حدول اصلیم بیام و توی جدول هر شخصیم همون تعداد آی دی رو وارد کنم !؟ (11 سال پیش)
+1 0
نوچ، این Insert شدن ها توسط خود کاربرا صورت میگیره. مثلآ یه کاربری تاکه روی isFav کلیک کرد، یه درخواست از به سرور ارسال بشه (این درخواست شامل AID کاربر + ID مطلب هستش) و در آخر هم سرور به با عمل Insert دیتابیس انتقالش بده (11 سال پیش)
0 0
اوکی امتحانش میکنم خبرشو بهت میدم ... دست مرصی گرفتم تقریبا باید تست کنم (11 سال پیش)
پاسخ به سوال 
h_uk2009  11 سال پیش
0 0

pggco  عزیز این کد رو میزنم برادر کار میده ولی تا زمانی که where رو نگذاشنتم میخوام اگه یکبار یک خبری که اسم فیلدش news_id هست دیگه توی جدول تکرار نشه و یبار برای هر کاربری فیوریت بشه ... فقط به من بگو چرا این where کار نمیکنه ! ؟؟ قابل ذکره که این آی دی آخری که میبینی میاد و ازون جدول دیگه آی دی اون خبرو میگیره و توی خودش ذخیره میکنه به دلیل اینکه هر کاربر باید یکسری خبرو فیوریت کنه در نتیجه این فیلد آی دی در جدول کاربرم نمیشه که کلید یا یونیک هم باشه .. فقط یک شرط میخوام بزارم که موقعی اینزرت کن که آی دی جدیدی که از سمتت اندروید خوندی توی جدول اون شخص نباشه

     mysqli_query($connection, "INSERT INTO user VALUES (0,'$user_id', $is_fav, $id )WHERE $id=1 ");

پاسخ به سوال 
احمد اسدی  11 سال پیش
+1 0

1- واسه Insert کردن دیگه Where به کار نمیاد و بکاربردنش اشتباس.

2- شما یک جدول جدید ساختین بنام user، چرا حالا user ؟ میتونستین بزارین is_fav

3- جدول is_fav باید دوتا تا فیلد داشته باشه:  news_id , aid که news_id از جنس Int و aid هم از جنس TEXT.

4- حالا وقتی کاربر روی دکمه "مورد علایقه" کلیک کرد، یک درخواست که شامل aid اون دستگاه و news_id که مال اون مطلب هستش به سرور ارسال میشه.

6- سرور این درخواست رو میگیره و با کوئری زیر به دیتابیس انتقالش میده.

 <?php
 
 $news_id = $_POST['news_id'];
 $aid = $_POST['aid'];
 
 mysqli_query($connection, "INSERT INTO `is_fav` (`news_id`, `aid`) VALUES ('$news_id', '$aid')");

 

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

مشگل حل شد از دوست عزیزم احمد یا همون Criss هم که به من همقکری داد متشکرم ... واقعا به همه پیشنهاد میکنم دیتابیسی رو برای فیوریت روی اس دی بسازید .. کاری که من کردمو نکنید بسیار به سختی مشکل حل شد ...

پاسخ به سوال 
شهریار توکلی  11 سال پیش
0 0

دوست عزیز من تا اینجا رو متوجه شدم ولی کوئری فرستادن اطلاعات رو باید چی جوری بنویسم یه کوئری نوشتم ولی مثل اینکه اشتباهه. کمک کنین ممنون میشم.

 function readDataFav(){
$conn = connectToDataBase();

$id=$_POST['item'];
$aid =$_POST['aid'];

//$id=1;
$sql = "SELECT * FROM isfav,app WHERE app_id=$id AND a_id=$aid";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
$output=array();
while($row = $result->fetch_assoc()) {
$record=array();

$record['app_id']=$row['serial_id'];
$record['app_name']=$row['serial_name'];
$record['app_vote']=$row['serial_vote'];
$record['app_rating']=$row['serial_rating'];
$record['app_logourl']=$row['serial_logourl'];
$record['app_pic1']=$row['serial_pic1'];
$record['app_pic2']=$row['serial_pic2'];
$record['app_pic3']=$row['serial_pic3'];
$record['app_pic4']=$row['serial_pic4'];
$record['fav_id']=$row['fav_id'];


$output[]=$record;
}

} else {
echo "0 results";
}

echo json_encode($output);
$conn->close();
}


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