PDA

View Full Version : مقایسه دو فیلد در پی اچ پی



majoran
دوشنبه 29 بهمن 1386, 15:39 عصر
سلام من این بحث رو تو مای اسکیوال مطرح کردم جواب نگرفتم حالا می خوام بدونم توی پی اچ پی میشه همپین کاری رو کرد

دوتا فیلد دارم به صورت زیر


سه شنبه ساعت 8 تا 12 و سه شنبه ساعت 9 تا 11

من بتونم بفهمم که این دو زمان با هم تداخل دارن یا نه مثلا در مثال بالا تداخل وجود داره

reza_rad
دوشنبه 29 بهمن 1386, 16:00 عصر
دوست عزیز شما بجای حل کردن مساله می خواهید صورت مساله رو پاک کنید!! دیتای شما به این شکل داخل دیتابیس مشکل داره حالا اگه الان تونستید ازش یه جوری در برید مطمئنا دفعات بعد مشکل پیدا خواهید کرد. باید فیلد هاتون atomic باشه تا بتونید با دیتابیس نرمال تون کار کنید این اولین شرط نرمال سازی هست 1NF !

majoran
دوشنبه 29 بهمن 1386, 16:54 عصر
ای بابا یعنی می فرمایید هیچ راه حلی برای مقایسه این دو نداریم خوب یعنی من برای این کار باید فیلد هامو تبدیل کنم به چه نوعی و جه راهی رو پیشنهاد می کنید

reza_rad
دوشنبه 29 بهمن 1386, 17:11 عصر
یعنی می فرمایید هیچ راه حلی برای مقایسه این دو نداریم
چرا داریم ولی خیلی سخته. یعنی شما باید از توابع string برای شکستن مقدار این فیلدتون استفاده کنید و بعد مقدارها رو با هم match کنید و...
تازه این بین هزار exception اتفاق می افته مثلا تعدا فاصله های بین استرینگ شما کم یا زیاد بشه. استرینگ شما اشتباه وارد بشه و ...


یعنی من برای این کار باید فیلد هامو تبدیل کنم به چه نوعی و جه راهی رو پیشنهاد می کنید
راهی که پیشنهاد کردم اینه که ساختار جدولتون رو اصلاح کنید بجای یک فیلد (سه شنبه ساعت 8 تا 12) از 3 فیلد استفاده کنید: یکی برای (سه شنبه) یکی برای (8) و یکی برای (12) . حالا راحت می تونید کوئری بزنید بدون مشکلات قبل.

majoran
دوشنبه 29 بهمن 1386, 20:50 عصر
آخه مشکلی که توحالت اول گفتی پیش نمی یاد چون اطلاعات رو من وارد کردم و کاربر باید انتخاب کنه و در حالت دوم همپین کاری خیلی سخته آخه من برای هر کاربر 12 حالت دارم این 12 حالت رو هرکدوم یه ساعت ورود داره یه ساعت خروج و بخوام برای هر کدام 3 تا فیلد بسازم که واویلا

vahid4134
سه شنبه 30 بهمن 1386, 18:47 عصر
شما که برنامه نویس هستید چرا اینطوری دارید اشتباه می کنید اون هم توی طراحی دیتابیس (وایلا)
اگه می خواهید چرا ساختارتون رو تغییر نمی دید مثلا به جای سه شنبه از عدد 3 استفاده کنید (یعنی برای همشون از اعداد استفاده کنید) و برای جداسازیشون از - یا هر چیز دیگه ای استفاده کنید. حالا می تونید با سادهترین توابع کار با رشته اونها رو جدا کنید یا خیلی راحت با explode به آرایه تبدیل کنید. یعنی کار کردن با 3-9-12 خیلی راحتتر هست اون وقت شما اعدادی دارید که می تونید به راحتی با توابع تاریخ این دو رو چک کنید. البته اگر هم می خواهید که از همین اطلاعات پایگاه داده استفاده کنید تنها راه ممکن اینه که داخل php اطلاعات رو به صورت اعداد در بیارید. دیگه کارتون با توابع کار با رشته ها هست. یا استفاده از عبارات با قاعده.
به هر حال اشکال اصلی شما در طراحی اولیه دیتابیس هست. شما باید اول می دیدید که چه اطلاعاتی رو نیاز دارید بعد دیتابیس رو طراحی می کردید.

majoran
سه شنبه 30 بهمن 1386, 20:47 عصر
این راه رو خودم انجام دادم ولی یه مشکلی هست و اونم اینه که باید تمام ساعات از قبل تعریف شده باشه و شکل همشون هم ثابت باشه

reza_rad
چهارشنبه 01 اسفند 1386, 07:09 صبح
[QUOTE]اونم اینه که باید تمام ساعات از قبل تعریف شده باشه و شکل همشون هم ثابت باشه[/
QUOTE]
منظورتون از اینکه می گید از قبل تعریف شده باشه چیه؟ هر وقت خواستید توی این فیلد ها دیتا بریزید لازم هست دیگه. و اینکه شکل همشون ثابت باشه یعنی چی؟ واضح تر بگید چه مشکلی با این ساختار دارید؟

majoran
چهارشنبه 01 اسفند 1386, 17:13 عصر
این ساختار در کل به این صورت باید باشه که عدد اول روز رو نشون میده و عدد دوم ساعت شروع و عدد سوم ساعت پایان .
حالا برای مقایسه کردن اگه عدد روز باهم مقایسه شد و متفاوت بود که هیچ.د رغیر این صورت باید بره عدد دوم که ساعت شروع هست رو با عدد دوم فیلد مورد نظر مقایسه کنه اگر برابر بود تداخل وجود داره در غیر این صورت اگر کوچکتر باشه باید بره و با عدد سوم فیلد مقایسه کنه و...
خوب من مشکلم اینه که کاربر من می خواد سه شنبه ساعت 12تا 15.30 رو مشخص کنه من باید از قبل تو لیست باکسم جای ولیو مقدار 3-12-15.30 رو داشته باشم .

reza_rad
پنج شنبه 02 اسفند 1386, 09:46 صبح
تمام کارهایی که گفتید به راحتی شدنیه.
اما در مورد اینکه باید لیست باکس شما مقدار داشته باشه هم خودتون می تونید مقادیر پیش فرض در اون بگذارید تا هر وقت کاربر وارد کرد به جدول شما وارد بشه. مشکل کجاست؟

majoran
پنج شنبه 02 اسفند 1386, 15:15 عصر
من جواب خودتو دادم
منظورتون از اینکه می گید از قبل تعریف شده باشه چیه؟ هر وقت خواستید توی این فیلد ها دیتا بریزید لازم هست دیگه. و اینکه شکل همشون ثابت باشه یعنی چی؟ واضح تر بگید چه مشکلی با این ساختار دارید؟

من اینکارارو کردم دنبال این بودم که میشه زاه بهتری پیدا کرد یا نه و حالا که بحث پیش اومد برای تفکیک متن از چه تابعی استفاده می کنیم