ترتیب رکوردها توسط کاربران !

justpersian

Member
تغییر ترتیب رکوردها توسط کاربران !

سلام .
حتما همه تو خیلی از سایت ها یا cms ها دیدن که مثلا کاربر میاد و 10 تا لینک ثبت می کنه بعد جایی که کاربر لینک ها رو ثبت کرده (مدیریت لینک ها) دو تا فلش داره که توسط اون فلش ها کاربر می تونه ترتیب لینک ها رو عوض کنه ! مثلا لینک شماره 1 رو بیاره جای لینک شماره 8 و...
شما برای انجام اینکار چه راهی رو پیشنهاد می کنید ؟
 

Masoud1365

مدیر انجمن
شما یه فیلد توی پایگاه داده اضافه کن مثلا به اسم id
مقداری رو که نشون میدی رو بر حسب id مرتب کن ( order by id )
حالا برای کاربر چنتا فیلد بزار که ترتیب لینک ها رو با وارد کردن اعداد داخل فیلد ( که در جلوی هر لینک گذاشتید ) مشخص کنه و بعدش بیا اطلاعات داخل فیلد رو با استفاده از update در پایگاه داده اعمال کن و بعدش هم نمایش بده !
 

justpersian

Member
اولا اینکه ممنون پاسخ دادی
بعدش شما اگر یه بار دیگه بخونید متن منو میبینید که نوشتم به وسیله دو تا فلش !
این که یه فیلد بذاریم تا کاربر خودش عدد وارد کنه خیلی بی ریخته و شاید بعضی ها اصلا نفهمن چیه !
یه راه که خود من امتحان کردم این بوده :
PHP:
if($Type == "Up"){
      $c_id = $id - 1;
      $up = mysql_query("UPDATE `links` SET id='0' WHERE id='$c_id'") or die(mysql_error());
      $up = mysql_query("UPDATE `links` SET id='$c_id' WHERE id='$id'") or die(mysql_error());
      $up = mysql_query("UPDATE `links` SET id='$id' WHERE id='0'") or die(mysql_error());
      header("location:$url");
}
else {
      $c_id = $id + 1;
      $up = mysql_query("UPDATE `links` SET id='0' WHERE id='$c_id'") or die(mysql_error());
      $up = mysql_query("UPDATE `links` SET id='$c_id' WHERE id='$id'") or die(mysql_error());
      $up = mysql_query("UPDATE `links` SET id='$id' WHERE id='0'") or die(mysql_error());
      header("location:$url");
}
اما مشکل این کد اینه که اگه کاربر بیاد و یک فیلد رو پاک کنه این کد دیگه کاراییش رو از دست میده !
ممنون میشم بقیه دوستان هم راهنمایی کنن
 

Masoud1365

مدیر انجمن
خب شما یه کار دیگه بکن ! لینک فلش رو و id لینک رو به url بفرست و بعدش از طریق $_GET بگیرش و پایگاه داده رو update kon
مثلا لینک ها به این صورت هست
لینک 1 بعدش لینک فلش رو به بالا میشه index.php?num_link=1&type=up
لینک 2 بعدش لینک فلش رو به بالا میشه index.php?num_link=2&type=up
وقتی رو فلش رو به بالا روی لینک 2 کلیک میکنه توی پایگاه داده id لینک 2 با لینک 1 عوض بشه حالا اگر که پاک هم بشه مشکلی در ترتیب نمایش پیش نمیاد.
 

justpersian

Member
حالا شما فرض کن لینک شماره 2 پاک میشه !
لینک کاربر هم رو لینک شماره 3 کلیک می کنه !
حالا لینک شماره 3 با لینک شماره 2 که وجود نداره عوض بشه ؟!!
 

Webber

Well-Known Member
سلام
نمیشه جدول رو مجبور کرد حتما بعد از 2 باید 3 باشه که.شما می تونید ردیف قبلی و بعدی رو خودتون دربیارید.
احتمالا کلاس زیر کارتون رو راه میندازه.راهنمای استفاده در داخل کلاس هست.
موفق باشید
 

پیوست ها

  • Mover.class.rar
    1.2 کیلوبایت · بازدیدها: 5

Masoud1365

مدیر انجمن
حالا شما فرض کن لینک شماره 2 پاک میشه !
لینک کاربر هم رو لینک شماره 3 کلیک می کنه !
حالا لینک شماره 3 با لینک شماره 2 که وجود نداره عوض بشه ؟!!

نه دیگه ! ببین مثلا می خوایی لینک شماره 3 رو بیاری بالا لینک 2 هم پاک شده پس باید لینک 3 با 1 عوض بشه درسته ؟
خب شما لینک 3 رو داری حالا برای اینکه لینک بالایی رو پیدا کنی ( که در اینجا لینک 1 هست ) میایی و با استفاده از یه کوئری مشکلو حل می کنی .
PHP:
SELECT * FROM link WHERE id > 1 order by id  LIMIT 1
حالا به جای اینکه لنک 3 رو با 2 که پاک شده عوض کنه لینک 3 با 1 عوض میشه :)
 

جدیدترین ارسال ها

بالا