PDA

View Full Version : سوال: ساخت اسکریپت چت خصوصی(دونفره)



erfannorouzi
جمعه 18 بهمن 1392, 16:22 عصر
سلام

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

تشکر

sadegh1362
شنبه 19 بهمن 1392, 10:25 صبح
سلام
اگه با ajax نوشتید . در تابع ajax مقدار success رو بذارید و قتی انجام شد یا به عبارت بهتر متن برای طرف مقابل ارسال شد . شما به محتوای صفحه ای که برای خود شخص قابل رویت هست مقدار ارسال شده رو اضافه کن تا پیغامی که فرستاده بهش نشون بده .

$.ajax({url:'http://192.168.1.1/...',
type: 'post',
async: false,
data: '',
success: function(output1) {
//yout code
}
});

beh3000
شنبه 19 بهمن 1392, 10:44 صبح
من در مورد همین چت یه سوالاتی داشتم :

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

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

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

sadegh1362
شنبه 19 بهمن 1392, 13:19 عصر
سلام
اینکه باید دیتابیسش رو جدا کنید که منطقیه . اما اینکه هربار در فواصل زمانی ajax بزنید درست نیست البته در کل همبنطوره اما میتونید راهای رو پیا کنید که راحتتر بشه اطلاعات رو نشون داد.

beh3000
شنبه 19 بهمن 1392, 14:13 عصر
میشه اگه اطلاعاتی دارین بیشتر توضیح بدین ؟ بخدا خیلی ضروریه برام

erfannorouzi
شنبه 19 بهمن 1392, 14:27 عصر
خیلی ممنون از پاسخت sadegh1362 (http://barnamenevis.org/member.php?263444-sadegh1362) جان ولی مشکل من تو قسمت ای جکس نیست مشکل من تو قسمت php و موقعی هست که میخوام پیام های قبلی رو از سرور بگیرم یعنی وقتی میخوام سلکتش کنم از دیتابیس میخوام به این شکل باشه که چت هر دونفر رو بهش نشون بدم ولی کدی که من مینویسم مثل پیام خصوصی میشه یعنی فقط پیام های گرفته یا پیام های ارسالی رو میتونم نشون بدم امیدوارم تونسته باشم منظورم رو رسونده باشم بازم ممنون

beh3000
شنبه 19 بهمن 1392, 14:39 عصر
مشکل تو که کاری نداره : توی سلکت کردن باید Or داشته باشی یعنی مثلا user1 و user2 دارن با هم میچتن پیغامهایی رو نمایش بده که یا فرستندش user1 باشه یا گیرندش user1 باشه همین ...


$result=mysql_query("select * from massage where fromuser='$user' OR touser='$user'");

erfannorouzi
شنبه 19 بهمن 1392, 14:52 عصر
خیلی ممنون از پاسخت beh3000 (http://barnamenevis.org/member.php?199913-beh3000)
فکر کنم یا تو منظور من رو متوجه نشودی یا من نگاه بزار مثال بزنم فرض کن یه یوزر دارم به نام یک و یه یوزر به نام دو حالا یوزر یک ه دو میگه سلام و یوزر دو میگه ع سلام و دوباره میفرسته خوبی؟؟؟ خب حالا من میخوام اینارو همرو تو یه صفحه ه هردو نشون بدم پیام های هردو یوزر رو

تشکر

beh3000
شنبه 19 بهمن 1392, 15:14 عصر
خب این کوئری همین کارو میکنه !!! توی صفحه یوزر 1 پیغام هایی رو نمایش میده که یا یوزر1 فرستاده باشه و یا پیغامی که به یوزر1 اومده (یعنی از طرف یوزر 2 فرستاده شده )
و توی صفحه یوزر 2 پیغام هایی رو نمایش میده که یا یوزر2 فرستاده باشه و یا پیغامی که به یوزر2 اومده (یعنی از طرف یوزر 1 فرستاده شده )

beh3000
شنبه 19 بهمن 1392, 15:24 عصر
اصلش همینه عرفان جان باید تمام پیغامهایی که فرستادی ( برای هر کاربری ) و تمام پیغام هایی که دریافت کردی (از هر کاربری) رو نمایش بدی این میشه ارسال و دریافت پیغام .. حالا اگه میخوای بهتر کوئری بگیری از ID هر دو کاربر باید استفاده کنی مثلا :



$result=mysql_query("select * from massage where (fromuser='$user1' and touser='$user2') OR (fromuser='$user2' and touser='$user1')");

erfannorouzi
شنبه 19 بهمن 1392, 15:28 عصر
خیلی ممنون beh3000 (http://barnamenevis.org/member.php?199913-beh3000) جان مشکل با این کوئری اخری حل شد دمت گرم