برگزیده های پرشین تولز

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

saeed_19_karaj

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

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

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

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

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

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


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

با تشکر
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
خب شما می تونی زمان insert کردن رکورد جدید اول count یا تعداد رکوردهای موجودت رو بگیری . اگه مساوی 100 بود با دستور delete رکورد اول رو پاک کن و حالا رکورد جدیدت رو insert کن .
 

saeed_19_karaj

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



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

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

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

مغزم هنگ کرده
 

peymanafraz

کاربر تازه وارد
تاریخ عضویت
28 دسامبر 2005
نوشته‌ها
137
لایک‌ها
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);
 

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();
?>

اگه میشه رو این پیادش کنید
 

peymanafraz

کاربر تازه وارد
تاریخ عضویت
28 دسامبر 2005
نوشته‌ها
137
لایک‌ها
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();
 

hossein_asp

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

saeed_19_karaj

کاربر تازه وارد
تاریخ عضویت
16 مارس 2006
نوشته‌ها
494
لایک‌ها
1
محل سکونت
سئوال جالبی بود
حالا اگه 100 نفر با هم پست بدن در یک زمان همه اطلاعات پاک میشه یعنی هچکس اصلا متنی رو تو چت نمیبنه.این راه مناسبی نیست بهتره بر اساس زمان کار کنید مثلا اگه 20 دقیقه گذشت و حجم رکورد ها از یه حدی مثلا 100 تا گذشت شروع به پاک کردن کنی.
( یک فیلد زمان time اضافه کن بعد هر دفعه زمان آخرین فیلد رو با اولین فیلد مقایسه کن اگر مثلا از 20 دقیق بیشتر بود اونوقت پاکن قبل از اینزرت)

من فیلد زمان رو هم دارم . توی فیلد زمانم اینا میاد

1191059651

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

PHP:
$time = time();

در ضمن به نظر من تعداد پست بهترین هست

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

من میخوام تعداد پست ها از 100 تا بالاتر نره
 

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 تا ولی بازم میفرستاد و پاک نمیکرد
 

sasan_66

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

peymanafraz

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

PHP:
MYSQL_QUERY("DELETE FROM 'chat' ORDER BY time LIMIT 1");

به جای time اسم فیلد مربوط به زمان رو قرار بده.
 

hossein_asp

کاربر تازه وارد
تاریخ عضویت
31 مارس 2005
نوشته‌ها
639
لایک‌ها
0
سن
39
محل سکونت
جایی که خدا نباشد
من فیلد زمان رو هم دارم . توی فیلد زمانم اینا میاد

1191059651

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

PHP:
$time = time();

در ضمن به نظر من تعداد پست بهترین هست

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

من میخوام تعداد پست ها از 100 تا بالاتر نره

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

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

insert ....
 

hichkas021

Registered User
تاریخ عضویت
7 می 2006
نوشته‌ها
190
لایک‌ها
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();
 

saeed_19_karaj

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

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();

دمت گرم

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

خیلی غلامم
 
بالا