السلام عليكم .. كيف اطبع بيانات جدول ما من تاريخ يدخله الباحث الى تاريخ اخر مدخل من قبل الباحث ايضا علما ان التاريخ يخزن في الداتابيز على شكل yyyy-mm-dd ؟؟
البحث من جدول من خلال تاريخين يتم ادخالها من المستخدم ؟؟
لنفترض أن التاريخين موجودان في المتغيرين $date1 و $date2، والجدول يحتوي على عمودين date1 و date2
ال sql query سيكون على هذا الشكل
$query = "SELECT * FROM yourTable WHERE date1>='$date1' AND date2<='$date2'";
أخي الكريم يمكنك فعل ذلك بطريقتين :
- الطريقة الأولى
<html> <body> <form method="post" action="read.php"> <p>statr:</p><input name="date_req_beg" id="date_req_beg" type="text" > <br> <p>end:</p><input name="date_req_end" id="date_req_end" type="text" > <br><br> <input type="submit" value="post request" > </form> </body> </html>
-نضع الملف read.php الذي سنقرأ منه قواعد البيانات التي اسميتها test و اسم الجدول فيها member ( مؤلف من ثلاث خانات fn و ln و date)و عندما نمر على كل سطر (fetch row)في هذا الجدول نأخذ خانة الdate
ثم نأخذ القيمة العددية للجزء المعبر عن السنين و هو أول أربع محارف من المتغير
$y[2]
و نجري المقارنة مع القيمة العددية لأول أربع محارف للـتاريخين المدخلين حيث سيقوم التابع بتحويل النص لعدد مثال "2010"->2010
intval(substr());
و هكذا سنفعل بالنسبة للأيام و للأشهر ، و إليك الكود الذي فقط يحتاج إلى تكملة المقارنات .
<?
$con=MYSQL_connect("localhost","root","abc123");
mysql_select_db("test",$con);
$sql="select * from mamber ";
$x=mysql_query($sql);
echo("first name last name date");
while($y=mysql_fetch_row($x))
{if(intval(substr($y[2],0,4)<=$POST["date_req_end"]&&(intval(substr($y[2],0,4)>=$POST["date_req_start") )
echo("$y[0] $y[1] $y[2]");
}
?>- الطريقة الثانية:
عند إنشاء الجدول ضع خانة للايام و خانة للأشهر و خانة للسنين و لكن على أن تكون ذات قيم عددية و عندها عند ارسال الطلب حدد الشرط مثال:
$sql="select * from mamber WHERE .....;
تم تعديل هذه المشاركة بواسطة yahya91 في 31 يوليو 2011 في 14:25
الموضوع بسيط جدا ماتستخدم BETWEEN و هيا ها تحللك كل حاجة و ها اكتبلك ال syntax :-
SELECT * FROM emp WHERE dob BETWEEN '$sdate' AND '$edate'