الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن عمل بحث بالتاريخ

بدأه man in dark في 21 يونيو 2008 · 15 رد · 1,212 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني انا اريد البحث بتحديد التاريخ

مثال لو احدد التاريخ من 2008/05/22 الى 2008/06/08

اي يستخرج البيانات من بداية التاريخ المحدد الى نهايته

قاعدة البيانات


`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`date` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7;

--
-- Dumping data for table `test`
--

INSERT INTO `test_mysql` VALUES (1, 'Billly', 'Blueton', '2008/05/22');
INSERT INTO `test_mysql` VALUES (2, 'Jame', 'Campbell', '2008/05/28');
INSERT INTO `test_mysql` VALUES (3, 'Mark', 'Jackson', '2008/06/06');
INSERT INTO `test_mysql` VALUES (4, 'Linda', 'Travor', '2008/06/08');
INSERT INTO `test_mysql` VALUES (5, 'Joey', 'Ford', '2008/06/28');
INSERT INTO `test_mysql` VALUES (6, 'Sidney', 'Gibson', '2008/06/289');
 CREATE TABLE `test` (

كيف اسوي صفحة البحث

#2
SELECT * FROM test WHERE `date` > '2008/05/22' AND `date` <  '2008/06/08';

تم تعديل هذه المشاركة بواسطة خالد_الحوراني في 21 يونيو 2008 في 19:02

#3

يا أخ خالد دى مخزنة فى قاعدة البيانات على هيئة نص كيف سينجح استعلامك ؟

----

الأوفق أخ man in dark أن تخرنها على هيئة Timestamp بعد كده العملية سهلة وميسرة ان شاء الله

#4

يا اخ مان ان دارك , في حال كان من الصعب عليك انو تغيير طريقة التخزين لسبب او لاخر

بهالحالة فينك تستخدم الدالة explode() يلي بتاخد سلسلة نصية وبتقسمها لعناصر نصية مفردة بالاعتماد على فاصل معين ,وضوحا الفاصل عندك عبارة عن اشارة السلاش

وبعدين بدك تساوي شوية عمليات مقارنة حتى توصل للشي يلي بدك ياه

مع تمنياتي لك بالتوفيق

سلام

#5

أهه عفواً لم انتبه لنوع الحقل ...

إذا كانت الداتا بيز صغيرة قم بإعادة تعبئتهم بعد تغيير نوع الحقل

وإلا عليك أن تقوم بالفلترة بعد الاستدعاء من php

تم تعديل هذه المشاركة بواسطة خالد_الحوراني في 21 يونيو 2008 في 21:02

#6

اخواني هذا الكود للبحث عن كلمة في قاعدة البيانات و استخراجها

$sql = "SELECT * FROM users WHERE $x LIKE '%$this_word%'";

$result = mysql_query($sql);
$num = mysql_num_rows($result);

بس كيف اعدل عليه لكي يبحث من التاريخ المحدد

بحيث ان التاريخ اختياري

اخي joo

لو ممكن مثال على اداة explode()

تم تعديل هذه المشاركة بواسطة man in dark في 21 يونيو 2008 في 22:51

#7

صفحة لإدخال التاريخ ------------

date1 و date2

بحيث date1 يتم ادخال التاريخ الاول و حقل date2 يتم ادخال التاريخ الثاني

طبعا date1 يكون هو التاريخ الاصغر

مثلاً date1 10/06/2008

date2 20/06/2008

وعند الضغط على بحث اريد ان يظهر النتائج من التاريخ الاول date1 الى التاريخ الثاني date2

<html dir="rtl">

<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>F</title>
<script language='javascript' src='resize.js'></script>
</head>

<body>

<div align="center">
<form name="form1" method="post" action="do.php">
	 <p> </p>
	<p> </p>
	<table width="37%" id="table1" height="175"  style="border-collapse: collapse" cellpadding="0" cellspacing="0">
		<!-- MSTableType="nolayout" -->
		<tr>
			<td width="62"> </td>
			<td> </td>
		</tr>
		<tr>
			<td width="62" height="35">من</td>
			<td height="35"><input name="date1" type="text" id="date1"></td>
		</tr>
		<tr>
			<td width="62" height="27">الى</td>
			<td height="27"><input name="date2" type="text" id="date2"></td>
		</tr>
		<tr>
			<td width="62" height="48"> </td>
			<td height="48">
			<input type="submit" name="Submit" value="بحث" style="color: #FFFFFF; border: 1px solid #FFFFFF; background-color: #2990E6"></td>
		</tr>
	</table>
</div>

</body>

</html>
#8
man in dark كتب:
اخواني هذا الكود للبحث عن كلمة في قاعدة البيانات و استخراجها

$sql = "SELECT * FROM users WHERE $x LIKE '%$this_word%'";

$result = mysql_query($sql);
$num = mysql_num_rows($result);

بس كيف اعدل عليه لكي يبحث من التاريخ المحدد

بحيث ان التاريخ اختياري

اخي joo

لو ممكن مثال على اداة explode()

تكرم عينك

Description
array explode ( string $delimiter , string $string [, int $limit ] )
Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string delimiter .

<?php
// Example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

تم تعديل هذه المشاركة بواسطة محمد معاشر في 22 يونيو 2008 في 12:52 — السبب: تعديل التنسيق ..

#9

اخي الكريم

غير طريقة التخزين عندك لنمط تاريخ ,’ واستخدم التابع الموجود في الملف الاول في صفحة ادخال التاريخ , اما التابع الثاني فاستخدمه في صفحة استحصال التاريخ لمعالجته او تخزينة بعد ان يضغط المستخدم سبمت على الصفحة , وردلي خبر اذا مشي الحال , واذا ما كان فينك انوا تغيير نمط التاريخ من سلسلة محرفيةة لتاريخ خبرني , مشان نضبط كود جديد بناسب الوضع الجديد

مع تمنياتي لك بالتوفيق

سلام

simple_calender.rar

#10

اخوي joo مافهمت عليك

معليش اخي فانا مبتدى في لغة البرمجة

#11
man in dark كتب:
اخوي joo مافهمت عليك

معليش اخي فانا مبتدى في لغة البرمجة

اوكي اخي , ان شاء الله رح ضبطلك ياه بمثال وابعثلك ياه, بس كتبتلك فكرة الخوارزمية تبع المقارنة في حال كانت المعطيات مخزنة على شكل سلسلة محرفية , مع مثال على كيفية استخدام التابع , explode

موجودين في الملف المرفق,حاول اقرأها ونفذها بس مشان تشوف التابع كيف بيشتغل

سلام

explodeexample.rar

#12

فهمت عليك اخوي joo

بس المشكلة في التطبيق

#13

سلام اخ مان ان دارك

بعثتلك هالمرة المثال يلي بعثته قبل فترة , بس هالمرة طبقتلك ياه بشكل عملي

يعني هلأ فينك اذا غيرت نمط تخزين التاريخ لنمط "ديت" واستخدمت الطريقة البسيطة يلي حطيتلك ياها في الملف حتى تخلي المستخدم يدخل التاريخ عن طريقها

ومن ثم يتم تحصيلها على شكل "ديت " وتخزنها في قاعدة المعطيات , بصير وقتها فينك ببساطة تستتخدم الطريقة يلي قلك عليها خالد الحوراني سابقا في المقارنة بين التواريخ

جرب شغل الملف يلي بعثتلك ياه مع هذا الايميل , وبعدين اقرأ الكود تبعه , وبتمنالك التوفيق

سلام

manInDark.rar

#14

اخواني لقد سويت هذا الكود و لكن لا يعمل بطريقة الاخ خالد الحوراني

<?php

include("config.php");// هنا الاتصال بقاعدة البيانات

$sql = "SELECT * FROM new WHERE `date` > '$date1' AND `date` <  '$date2';'";

$result = mysql_query($sql);



if($num<=0){ echo '<div align="center">';  echo "بحثك لم يطابق اي تاريخ في قاعدة البيانات "; echo '</div>';   }


else {
?>
<div align="center">
	<table width="80%" border="1" bordercolorlight="#2868A7" bordercolordark="#2868A7">




  <tr>
	<td width="1100" bgcolor="#2868A7"><div align="center">
		<font color="#FFFFFF"><b>Name</b></font></div></td>
	<td width="300" bgcolor="#2868A7"><div align="center"><font color="#FFFFFF"><b>ID</b> 
		</font> </div></td>
	<td width="400" bgcolor="#2868A7"><div align="center"><font color="#FFFFFF"><b>Results</b></font></div></td>


  </tr>

<?php
$data = mysql_fetch_array($result);
?>

  <tr>

  <td width="1100"><div align="center"><b><?php echo $data['name']; ?></b></div></td>
  <td width="300"><div align="center"><b><?php echo $data['number']; ?></b></div></td>
  <td width="400" bgcolor="#2868A7">
	<p align="center"><a href="View_ac.php?id=<? echo $data['id']; ?>">
<font color="#FFFFFF"><span style="text-decoration: none; font-weight:700">View</span></font></a></td>


  </tr>
  <?php } ?>
</table></div>

<?php

?>

تم تعديل هذه المشاركة بواسطة man in dark في 25 يونيو 2008 في 22:12

#15

أخي الكريم اعمل export لقاعدة البيانات وابعثها أيضاً ...

بانتظارك

#16

اخي اضفت هذا الكود و لكن لم يعمل

  $dateStr = '$date1';
  $separator = '/';
 $outputArry = explode( $separator,$dateStr);
 print_r($outputArry);

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…