PDA

View Full Version : سوال: استفاده از نتيجه يك query در چند صفحه



kianmehr21
جمعه 04 شهریور 1390, 15:54 عصر
در يكي از صفحه هاي سايتم توسط ورودي كاربر query ايجاد ميشه ميخوام از نتيجه اين query در صفحات ديگه استفاده كنم چطور اين كار بايد انجام بدم؟ميشه ورودي كاربرو جايي ذخيره كرد تا بشه دوباره هر جا نياز بود ازش استفاده كرد؟

amin1softco
جمعه 04 شهریور 1390, 16:10 عصر
بله این XML بنده خدا اصلاً برای همین کار ساخته شده.............

nadi_1368
جمعه 04 شهریور 1390, 16:14 عصر
salam.are b nazar manam fekr khobiye.

binyaft
جمعه 04 شهریور 1390, 16:26 عصر
جناب XML باس بره کشک بسابه ...
برای ذخیره راه های بهتری هم هست مثل Json
ایشون فکر کنم session ها کارشو راه بندازن

kianmehr21
جمعه 04 شهریور 1390, 16:38 عصر
يه مثال ميزنم تا بهتر متوجه بشيد مثلا شما قراره توسط كلمه كليدي كاربر توي بانك اطلاعاتي search كنيد از طرف ديگه يه بخش ديگه كد مسئول صفحه بندي اين صفحه است، اولين بار اين صفحه با متد post ورودي كاربرو به صفحه search.php ارسال ميكنه و query گرفته ميشه، تعداد آيتم ها مثلا 40 تا كه توي 4 صفحه 10 تايي بايد نمايش داده بشه صفحه اول بدون مشكل نمايش داده ميشه ولي موقعي كه كاربر ميخواد به صفحه 2 بره، 2 با متد get به صفحه search.php ارسال ميشه،اگه بخوايم دوباره query بگيريم بايد ورودي كاربر باشه به نظر من دوباره query گرفتن معقول نيست بايد روش بهتري باشه كه من اينو نميدونم.

amin1softco
جمعه 04 شهریور 1390, 17:32 عصر
عزیزم مشکلت رو می تونی با XML یا JSON که دوستمون اشاره کردند حل کنی
ولی یک راه ساده تر اول ببین چند رکورد از مطالب رو می تونی در یک صفحه نمایش بدی همون قدر اطلاعات از پایگاه بخون و نماش بده صفحه دوم به همین ترتیب همه اطلاعات رو یکجا از پایگاه بیرون نکش.......

امیـرحسین
جمعه 04 شهریور 1390, 21:13 عصر
به نظر من باید مجددا کوئری اجرا بشه چون اولا شاید در حین صفحه عوض کردن من، اطلاعات جدیدی وارد سیستم شده باشه یا اطلاعاتی حذف شده باشه یا تغییر کرده باشه که باید تغییرات برای من لحاظ بشه.
دوما من نمی‌دونم چطور میخواید از XML و JSON استفاده کنید ولی اگر بخواید مثلا فایل XML موقت بسازید باید به ازای هر کاربر و جستجو یک فایل ساخته شه مثلا اگر ۱۰۰۰ تا کاربر همزمان جستجو کنند، ۱۰۰۰ تا فایل ساخته میشه که اگر هر فایل رو میانگین ۲۰۰ کیلوبایت در نظر بگیریم میشه ۲۰۰ مگابایت که سیستم باید در در این لحظه، ۲۰۰ مگابایت اطلاعات رو Handle کنه و در زمان مناسب البته از سیستم حذف بشه و کلا کار کثیفیه!

اگر به چنین کاری اصرار دارید پیشنهاد میکنم از سیستمهای Cache آماده استفاده کنید که اکستنشن هستند و سریع و مطمئن عمل میکنند و یا بجای ذخیره‌ی خود نتابج در فایل،‌ فقط شناسه‌ی اونها رو ذخیره کنید اونهم نه در فایل بصورت یک آرایه در یک Session یعنی مثلا جستجوی من ۱۰ تا نتیجه داشته که هر نتیجه یک ID در دیتابیس داره. این آیدی‌ها رو ذخیره کنید و براساس این آیدی‌ها کوئری بگیرید که سریع خواهد بود (توسط تابع ()IN در MySQL مثلا)
و یا کوئری‌ها رو توسط Stored Procedures انجام بدید که بهینگی خیلی بیشتری نسبت به کوئری معمولی برای چنین کارهایی داره.