PDA

View Full Version : مشکل این کد چیه؟



mehdirani
سه شنبه 07 بهمن 1393, 16:42 عصر
سلام مشکل این کد چیه؟
میخام برای هر ای پی یه بار عدد وارد بشه نمیدونم کجاش ایراد داره


<?php require_once 'config.php'?>
<?PHP$id=$_POST['idm'];$ips = $_SERVER['REMOTE_ADDR'];$table=mysql_query("SELECT * FROM `posts` WHERE `id` = '$id'"); $row=mysql_fetch_assoc($table); /*_____ Begin Updating like _____________*/$like = $row['rate']+1;mysql_query("UPDATE `posts` `ip` = '$ips' SET `rate` = '$like'WHERE `id` = '$id' ");
/*_____ END Updating like _______________*/ header("location: index.php"); ?> امتیاز وارد شد!

فرزند کوروش
سه شنبه 07 بهمن 1393, 16:48 عصر
کوئریتو اینجوری کن هم کوتاه تر هم راحتتر!

mysql_query("UPDATE posts SET `rate` = rate+1 WHERE `id` = '$id' ");

فرزند کوروش
سه شنبه 07 بهمن 1393, 16:49 عصر
قبلش باید جدگانه چک کنی که این ای پی رکوردی ازش داخل دیتابیس هست یا نه
اگر نبود اپدیت رو انجام بدی

mehdirani
سه شنبه 07 بهمن 1393, 16:51 عصر
با ای پی می خوام چک کنم که این ای پی برای این مطلب ذخیره شده یا نه
چه کار باید کنم؟

mehdirani
چهارشنبه 08 بهمن 1393, 10:46 صبح
چطور باید چک کنم که این ای پی قبلا به پستی امتیاز داده یا نه؟

mohamadali1374
چهارشنبه 08 بهمن 1393, 11:06 صبح
سلام
خوب ذخیره کردن ip باعث میشه حجم دیتابیس خیلی بالا بره
ولی ایده ای که میتونم بدم اینه که شما در جدول مطالب یه فیلد اضافه کنی به نام like حالا توی یه جدول دیگه ip و شماره مطلب رو ذخیره کنی و هر وقت یک نفر خواست مطلبی رو like کنه اول در جدول دوم چک کنه که آیا رکوردی با شماره مطلب فعلی و ip کار بر وجود داره یا نه اگه که وجود نداشت خوب توی جدول مطالب فیلد like مربوط به همون مطلب رو آپدیت کنی و بعد از مثلا بعد از یک هفته رکورد های جدول دوم رو پاک کن که حجم دیتابیس بالا نره

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

فرزند کوروش
چهارشنبه 08 بهمن 1393, 12:59 عصر
ولی این راه یکم اشتباهه چون توی اکثر سایت ها با استفاده از سشن این کار رو انجام میدن که به نظر من خیلی بهتره...
دوست عزیز سیشن عمر کمی داره و برای این کار اصلا مناسب نیست

mohamadali1374
چهارشنبه 08 بهمن 1393, 18:30 عصر
دوست عزیز سیشن عمر کمی داره و برای این کار اصلا مناسب نیست
درسته حق باشماست سیشن عمر کمی داره ولی ip رو هم به راحتی میشه عوض کرد ولی خیلی کم پیدا میشه که بخاطر like کردن بخواد ip رو عوض کنه یا منتظر بمونه تا سیشن از بین بره چون like کردن فرایند خیلی مهمی نیست به همین علت به نظر من هنوز سیشن برای like میتونه بهتر باشه...

mehdirani
چهارشنبه 08 بهمن 1393, 19:56 عصر
منم همون ایده ی شما رو داشتم ی فیلد برای ای پی گذاشتم یه فیلد برای لایک های مطلب حالا فقط باید فیلد ای پی رو با ای پی کاربر چک کنم که برای اون ایدی مطلب ذخیره شده یانه!
اما کدش رو نوشتم درست حسابی اجرا نشد میشه کدی برای نمونه بهم بدید
خوب با سیشن چطور انجام بدم؟


اینم عکس از فیلد ها
127997

mohamadali1374
چهارشنبه 08 بهمن 1393, 20:11 عصر
گذاشتن فیلد ip توی جدول مطالب که اشتباه یعنی اولا که شما نمیتونید برای هر ip یه مطلب ایجاد کنید:بوس:
دوما اگه فیلد ip رو آپدیت کنید خوب اون وقت معلوم نمیشه کی like کرده(یعنی ip های قبلی حذف میشه)
ولی اگر همونی که بالا گفتم اجرا کنید بد نیست (یعنی دو تا جدول داشته باشید)
متاسفانه فعلا کدی ندارم ولی اگه کد هاتون رو بزارید من و دوستان توی برنامه نویس کمک میکنیم

درباره سشن هم اگه با سشن ها کار کرده باشید میتونید وقتی کاربری یه مطلب رو لایک کرد یه سشن درست کنید بعد هم چک کنید اگه سشن وجود نداشت لایک رو اعمال کنه

mehdirani
جمعه 10 بهمن 1393, 11:51 صبح
درباره سشن هم اگه با سشن ها کار کرده باشید میتونید وقتی کاربری یه مطلب رو لایک کرد یه سشن درست کنید بعد هم چک کنید اگه سشن وجود نداشت لایک رو اعمال کنه

داداش میشه در مورد سشن یکم بیشتر توضیح بدی زیاد وارد نیستم کاربا سشن