• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
جستجو چند فیلدی به همراه 2تاریخ
#1
سلام
کوئری که برای جستجو بین چند فیلد نوشتم درست کار میده اما چون بین تاریخ ( از - تا ) اضافه کردم مشکل پیدا شده. چرا وقتی دکمه جستجو رو میزنم و input ها خالین هیچی نمیایش نمیده ؟ یا حتی اگر یکی از فیلدهای نام یا نام خانوادگی رو مقدار بدم بازم هیچی نتیجه نمیده اماااا بعد اینکه مقدار تاریخ رو درج کنم درست میشه!

کد پی‌اچ‌پی:
        $Sql $conn->query("SELECT *, `from01`.name AS f01Name, `to01`.name AS t01Name, `from1`.name as f1Name, `to1`.name as t1Name, `from2`.name as f2Name, `to2`.name as t2Name, ticket.id AS newId  FROM `ticket`
                            left JOIN `cities` AS to01 ON ticket.to01 = to01.id
                            left JOIN `cities` AS from01 ON ticket.from01 = from01.id
                            left JOIN `cities` AS from1 ON ticket.from1 = from1.id
                            left JOIN `cities` AS to1 ON ticket.to1 = to1.id
                            left JOIN `cities` AS from2  ON ticket.from2 = from2.id
                            left JOIN `cities` AS to2 ON ticket.to2 = to2.id
                            WHERE ticket.first_name like '%"
.$search_name."%'
                            AND ticket.last_name like '%"
.$search_lastname."%'
                            AND ticket.phone like '%"
.$search_phone."%'
                            AND ticket.date BETWEEN '%"
.$date."%' AND '%".$date2."%'
                            "
); 
  پاسخ
تشکر شده توسط :
#2
سلام،
توی پایگاه داده فیلد تاریخت چه نوعی هست؟
غایب
  پاسخ
تشکر شده توسط :
#3
استاد از نوع datetime گرفتم.
  پاسخ
تشکر شده توسط :
#4
یه نمونه از مقادیری $date و $date2 رو هم میزاری ببینیم؟
استاد هم خودتی Big Grin

اون درصد ها اضافه هست.
کد پی‌اچ‌پی:
AND ticket.date BETWEEN '".$date."' AND '".$date2."' 
غایب
  پاسخ
تشکر شده توسط : a76205
#5
اختیار دارید واقعا یدونه هستید Heart

ورودی به این شکله:
1395-07-13 18:07
  پاسخ
تشکر شده توسط :
#6
بعد شما توی پایگاه داده هم تاریخ‌ها رو به تقویم ما ثبت کردین؟
اون ٪ها رو حذف کردین درست نشد؟
غایب
  پاسخ
تشکر شده توسط :
#7
(۱۳۹۵ مهر ۱۳, ۱۱:۴۴ ب.ظ)Alaa نوشته: بعد شما توی پایگاه داده هم تاریخ‌ها رو به تقویم ما ثبت کردین؟
اون ٪ها رو حذف کردین درست نشد؟

بله دیگه به همین صورتی که ورودی بود ثبت کردم
با حذف % نشد. حتی بصورت '$date' نوشتم بازم نشد
  پاسخ
تشکر شده توسط :
#8
ببخشید وسط تاپیک استاد عزیزم alaa وارد شدمBig GrinBig GrinBig Grin
شما بهتر در موقع ثبت تاریخ ، تاریخ رو به صورت ثانیه ذخیره کنید بعد موقع جستجو هم هیچ مشکلی براتون پیش نمیاد
به این صورت اگه از تاریخ میلادی استفاده میکنید با تابع mktime به ثانیه تبدیل کنید
مثال
کد پی‌اچ‌پی:
<?php
$time 
mktime(12,25,45,2,10,2012);

 
echo date("G:i:s  d/F/Y" $time );// نحوا تبدیل دوباره به تاریخ
?>

یا اگه از تاریخ شمسی استفاده میکنید از jdf و تابع عالیش jmktime استفاده کنید به این شکل
کد پی‌اچ‌پی:
jmktime(6,15,34,11,22,1389);// خروجی: 1297392334 

مطمئنا در موقع جستجو هم مشکلی پیش نمیاد با روش شما یعنی به راحتی میتونید بین 2 تاریخ رو جستجو کنید
  پاسخ
تشکر شده توسط : a76205
#9
نقل قول:ببخشید وسط تاپیک استاد عزیزم alaa وارد شدم

استاد خودتی Big Grin تاپیک من نیست که، همه می‌خوایم به هم کمک کنیم اینجا، شما هم نکته‌ای داری قدمت روی چشم، بگو، مالکیت نداریم که اینجا Big Grin

من هم همیشه از timestamp استفاده میکنم اتفاقا، ولی خب چرا این مدلی که دوستمون می‌نویسه جواب نمیده.

نمونه رو نگاه کن:
کد پی‌اچ‌پی:
SELECT FROM `objects
WHERE  (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55'
فرمت که درست هست، نکته‌ای که داره فقط اینه که اول باید تاریخ کوچیکتر رو بزاری، بعدش تاریخ بزرگتر رو.
غایب
  پاسخ
تشکر شده توسط : a76205
#10
لطفا 3 تا عکسو ببینید :

http://s6.uplod.ir/i/00825/51uy0mboikus.jpg
http://s6.uplod.ir/i/00825/k9cpwbm6unce.png
http://s6.uplod.ir/i/00825/xv88jkirkb5l.jpg
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان