آژانس هواپیمایی
pop up

میخوام تعداد سطرهای تیبل ها 100 تا باشه . چه جوری؟

شروع موضوع توسط saeed_19_karaj ‏28 سپتامبر 2007 در انجمن PHP

  1. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    با سلام
    من چون سیستم چت نوشتم برای دوستیابیم

    من میخوام تعداد 100 تا پست بیشتر در دیتا بیس جا نگیره . که حجم دیتا بیس بالا نره .

    می دونم چه جوری با یه کوئری limit100 در صفحه آخرین 100 پست رو نشون بدم ولی میخوام تو دیتا بیس 100 تا پست که رسید یعنی از id 1 تا 100 بعد از اون به بعد پست شماره 1 پاک بشه و پست 100 بشه 99 و من تو پست 100 که خالی شده بنوسم

    به خاطر بالا نرفتن حجم دیتا بیس میگم

    میدونید که اطلاعات تو چت روم هم مهم نیست که نگهش دارم و فقط میخوام 100 تا id باشه

    اگه نگرفتید منظورم رو توضیح بدم بازم


    خیلی شدید به کمک نیاز دارم

    با تشکر
     
  2. amin_lili

    amin_lili کاربر تازه وارد

    تاریخ عضویت:
    ‏24 آپریل 2007
    نوشته ها:
    528
    تشکر شده:
    2
    محل سکونت:
    ای کاش آنجا ...
    خب شما می تونی زمان insert کردن رکورد جدید اول count یا تعداد رکوردهای موجودت رو بگیری . اگه مساوی 100 بود با دستور delete رکورد اول رو پاک کن و حالا رکورد جدیدت رو insert کن .
     
  3. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    یعنی بنویسم مثلا اگر id رسی به 100 آی دی 1 رو پاک کن؟
     
  4. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    خوب گرفتم چه جوریه

    تو کد نوشتنش یکم میشه کمکم کنید؟

    دمتون گرم
     
  5. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    آلان امتحان کردم نشد



    آی دی 1 رو پاک کنم
    بعد پست بعدی بره تو 101

    فقط نمیدونم چه جوری بفهمنونم شد 100 تا این کار رو بکنه

    یه مثال بزنید میگیرم

    مغزم هنگ کرده
     
  6. peymanafraz

    peymanafraz کاربر تازه وارد

    تاریخ عضویت:
    ‏28 دسامبر 2005
    نوشته ها:
    135
    تشکر شده:
    0
    محل سکونت:
    $strHome
    PHP:
    $strQuery "SELECT COUNT(*) AS intCount FROM messages";
    $dbResult MYSQL_QUERY($strQuery);
    $dbRecord MYSQL_FETCH_OBJECT($dbResult);
    $intCount $dbRecord->intCount;
    IF(
    $intCount 100)
    MYSQL_QUERY("DELETE FROM messages LIMIT 0,1");

    $strQusry "INSERT INTO messages VALUES(مقادیر);";
    MYSQL_QUERY($strQuery);
     
  7. boxilink
  8. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    دوست عزیز این کد صفحه سند من به mysql در چت هست

    PHP:
    <?PHP
    include("db.php");
    $message $_REQUEST['message'];
    $sender $_REQUEST['sender'];
    $time time();
    mysql_query("INSERT INTO `chat` VALUES ('', '$message', '$sender', '$time')");
    mysql_close();
    ?>
    اگه میشه رو این پیادش کنید
     
  9. peymanafraz

    peymanafraz کاربر تازه وارد

    تاریخ عضویت:
    ‏28 دسامبر 2005
    نوشته ها:
    135
    تشکر شده:
    0
    محل سکونت:
    $strHome
    PHP:
    include("db.php");
    $message $_REQUEST['message']; 
    $sender $_REQUEST['sender'];
    $time time();
    $strQuery "SELECT COUNT(*) AS intCount FROM 'chat'";
    $dbResult MYSQL_QUERY($strQuery);
    $dbRecord MYSQL_FETCH_OBJECT($dbResult);
    $intCount $dbRecord->intCount;
    IF(
    $intCount 100)
    MYSQL_QUERY("DELETE FROM 'chat' LIMIT 0,1");

    $strQusry "INSERT INTO `chat` VALUES ('', '$message', '$sender', '$time')";
    MYSQL_QUERY($strQuery); 
    MYSQL_CLOSE();
     
  10. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    دارم امتحان میکنم

    کاشکی دکمه تشکر داشت ازت تشکر میکردم

    دمت گرم
     
  11. hossein_asp

    hossein_asp کاربر تازه وارد

    تاریخ عضویت:
    ‏31 مارس 2005
    نوشته ها:
    637
    تشکر شده:
    0
    محل سکونت:
    جایی که خدا نباشد
    حالا اگه 100 نفر با هم پست بدن در یک زمان همه اطلاعات پاک میشه یعنی هچکس اصلا متنی رو تو چت نمیبنه.این راه مناسبی نیست بهتره بر اساس زمان کار کنید مثلا اگه 20 دقیقه گذشت و حجم رکورد ها از یه حدی مثلا 100 تا گذشت شروع به پاک کردن کنی.
    ( یک فیلد زمان time اضافه کن بعد هر دفعه زمان آخرین فیلد رو با اولین فیلد مقایسه کن اگر مثلا از 20 دقیق بیشتر بود اونوقت پاکن قبل از اینزرت)
     
  12. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    امتحان کردم
    میفرسته ولی کار نکرد
     
  13. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    من فیلد زمان رو هم دارم . توی فیلد زمانم اینا میاد

    1191059651

    یعنی دقیقا زمان سرور

    PHP:
    $time time();
    در ضمن به نظر من تعداد پست بهترین هست

    چون یه موقع تو چت روم دوستیابیم هیچ کی نیس یه موقع هم 20 نفر هستن

    من میخوام تعداد پست ها از 100 تا بالاتر نره
     
  14. avajang.com .leftavajang.com.right
  15. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    این چرا کار نکرد؟:wacko:

    PHP:
    include("db.php");
    $message $_REQUEST['message']; 
    $sender $_REQUEST['sender'];
    $time time();
    $strQuery "SELECT COUNT(*) AS intCount FROM 'chat'";
    $dbResult MYSQL_QUERY($strQuery);
    $dbRecord MYSQL_FETCH_OBJECT($dbResult);
    $intCount $dbRecord->intCount;
    IF(
    $intCount 100)
    MYSQL_QUERY("DELETE FROM 'chat' LIMIT 0,1");

    $strQusry "INSERT INTO `chat` VALUES ('', '$message', '$sender', '$time')";
    MYSQL_QUERY($strQuery); 
    MYSQL_CLOSE();  
    تعداد پستا شد 120 تا ولی بازم میفرستاد و پاک نمیکرد
     
  16. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    آقا يه سوال
    مگه ميشه با عبارت delete تعيين كردكه چند تا ركورد با شروع از كدوم آفست حذف شن؟
    تا اونجا كه من مي دونم عبارت limit توي delete فقط مي تونه يه عدد جلوي خودش داشته باشه و اونم تعداد سطر هايي كه مي خوايم پاك كنيم
    عبارت limit 0, 1 براي select كار مي كنه نه براي delete
     
  17. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    منم همین رو موندم
    چه جوری میفهمه کدوم پست رو DELETE کنه
     
  18. peymanafraz

    peymanafraz کاربر تازه وارد

    تاریخ عضویت:
    ‏28 دسامبر 2005
    نوشته ها:
    135
    تشکر شده:
    0
    محل سکونت:
    $strHome
    sasan_66 جان عزیز ممنون که یادآوری کردین. بله ایشون درست میفرماین. سعید جان خط مربوط به delete رو بصورت زیر تغییر بده.

    PHP:
    MYSQL_QUERY("DELETE FROM 'chat' ORDER BY time LIMIT 1");
    به جای time اسم فیلد مربوط به زمان رو قرار بده.
     
  19. hossein_asp

    hossein_asp کاربر تازه وارد

    تاریخ عضویت:
    ‏31 مارس 2005
    نوشته ها:
    637
    تشکر شده:
    0
    محل سکونت:
    جایی که خدا نباشد
    این حذف با گذشتن از تعداد اصولی نیست تجربه به من میگه مشکل ایجاد میکنه.منم یه وقتایی ازکدیکه نوشتم انقدر خوشم میاد که باورم نمیشه مشکل داره.لازم نشده نا حالا time و زمان از هم کم کنم ولی فکر کنم بشه یه سرچ گوگل کارتو راه میندازه.من آنچه شرط بلاغ بود با تو گفتم خواه پند گیر خواه ملال :f34r:

    PHP:
    IF($intCount 100
     if(
    $_record_time['first'] - $_record_time['last']==20 MIN)
          
    MYSQL_QUERY("DELETE FROM 'chat' LIMIT 0,1"); 

    insert ....
      
     
  20. hichkas021

    hichkas021 Registered User

    تاریخ عضویت:
    ‏7 می 2006
    نوشته ها:
    189
    تشکر شده:
    0
    محل سکونت:
    No Where
    اینو تست کن :

    PHP:
    $time time();
    $rows = @mysql_num_rows(mysql_query("SELECT `id` FROM `table`"));
    while(
    $rows>100)
    {
        
    mysql_query("DELETE FROM `table` ORDER BY `id` ASC LIMIT 1");
        
    $rows mysql_num_rows(mysql_query("SELECT `id` FROM `table`"));
    }
    mysql_query("INSERT INTO `chat` VALUES ('', '$message', '$sender', '$time')");
    mysql_close();
     
  21. saeed_19_karaj

    saeed_19_karaj کاربر تازه وارد

    تاریخ عضویت:
    ‏16 مارس 2006
    نوشته ها:
    494
    تشکر شده:
    1
    محل سکونت:
    سئوال جالبی بود
    دمت گرم

    حرف نداشت . داره مثل بنز کار میکنه:lol:

    خیلی غلامم
     
  22. hichkas021

    hichkas021 Registered User

    تاریخ عضویت:
    ‏7 می 2006
    نوشته ها:
    189
    تشکر شده:
    0
    محل سکونت:
    No Where
    قابلی نداشت:happy: