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

سؤال : استخراج البيانات حسب تاريخ اليوم

بدأه هالي الدهوكي في 19 فبراير 2014 · 23 رد · 1,471 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا شباب كيف الحال إن شاء الله بخير ...

 

شباب انا معايا قواعد بيانات كبيرة جدا جدا جدا لبرنامج صممته منذ سسنة او سنة و نصف السؤال هو

انا لما برمجت الموقع التاريخ في قواعد البيانات يسجل مثل دالة ()time او UNIXTIME مثلا 2348573000 او 355450008

 

انا الي محتاجه هو اريد استخرج كل بيانات التي وضعت بيوم مثلا 21 لااريد الشهر و السنة فقط اريد استخراج تاريخ اليومي للبيانات .

 

بصراحة انا جربت .

$todaynow = date("d");
$selectaccount = mysql_query("select * from accounts where  FROM_UNIXTIME(date) LIKE '%$todaynow%' order by $orderby $store LIMIT $start, $limit") or die(mysql_error());
 $numresult = mysql_num_rows($selectaccount);

لكن لن تنجح الفكرة معي لا اعرف ما هو السبب 

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#2

شباب هل هنالك حل لسؤالي ؟

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#3

الا يوجد رد ما هي مشكلتكم لعدم مساعدتي هل هنالك خلل في فهم الموضوع ؟

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#4

السلام عليكم ....

تبغي مثل هذه الصور

post-275266-0-63740100-1393057918_thumb.

تم تعديل هذه المشاركة بواسطة hamzakhan28 في 22 فبراير 2014 في 11:33

1
#5

بضبط بس مش عاوز سنة ولا شهر فقط اليوم و يكشف اليوم من تاريخ الجهاز مثلا اذا كان تاريخ الجهاز او كومبيوتر 23 يستخرج كل شئ تم اضافته في يوم 23 .

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 22 فبراير 2014 في 16:09

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#6

تفضل أخى العزيز

 

هذ هو الاستعلام بشكل صحيح.

SELECT * FROM accounts WHERE DAY(FROM_UNIXTIME(date)) = '$todaynow' ORDER BY $orderby $store LIMIT $start, $limit

ويمكنك كتابة الاستعلام بشكل أخر والاستغناء عن المتغير $todaynow بهذا الشكل:

SELECT * FROM accounts WHERE DAY(FROM_UNIXTIME(date)) = DAY(CURDATE()) ORDER BY $orderby $store LIMIT $start, $limit

بالتوفيق.....

تم تعديل هذه المشاركة بواسطة مستر برمجة في 22 فبراير 2014 في 18:29

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#7

للأسف اخي لم ينجح الكود معي لا اعرف اين السبب 

 

الأكواد تعمل بس مش تستخرج بيانات حسب تاريخ اليوم الأكواد بتعمل و تجيب كل البيانات .

 

764791237.jpg

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 23 فبراير 2014 في 00:06

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#8

أخى العزيز

 

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

وهذا هو المثال البسيط الذى أستخدمتة

$today = date('d');
$query = mysql_query("SELECT * FROM posts WHERE DAY(FROM_UNIXTIME(creation_date)) = '$today' ");
$numRows = mysql_num_rows($query);
if ($numRows > 0) {
    while ($post = mysql_fetch_assoc($query)) {
        echo $post['title']."<br/>";
    }
} else {
    echo "لا يوجد بيانات.";
}

حاول تراجع الكود الخاص بك جيدا .

تم تعديل هذه المشاركة بواسطة مستر برمجة في 23 فبراير 2014 في 00:42

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#9
DAY(FROM_UNIXTIME(creation_date))

اخي DAY هل هو استعلام ثابت او انه اسم لجدول ؟

و creation_date من المؤكد انه جدول الخاص ب التاريخ في القاعدة .

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#10

Plus +

 

لا مشكلة في الكود ربما تكون المشكلة من توقيت في جهازي او ماذا مستر برمجة انا هخليك تدخل الى جهازي يا حبيبي عن طريق برنامج team viewer لو سمحت اخي ؟ قد ارسلت لك رسالة خاصة private message 

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#11

أخى العزيز

 

 

  • creation_date :

هو العمود(column) الذى يخزن فية التاريخ بأستخدام الدالة time().

 

|

  • DAY() :

هى دالة Mysql تستخلص رقم اليوم المخزن فى creation_date.

 

|

  • FROM_UNIXTIME() :

هى دالة Mysql تستخدم لتحويل التاريخ من Unixstamp إلى التاريخ العادى dd/mm/yy

تم تعديل هذه المشاركة بواسطة مستر برمجة في 23 فبراير 2014 في 02:03

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#12

لا ينفع اخي لازالت المشكلة بدون حل معي اتمنى تدخل اى جهازي و تشوف ايه المشكلة بس انا متأكد مفيش مشكلة في كود الخاص بي المشكلة يمكن مع كود FROM_UNIXTIME

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#13

طيب جرب هذة الطريقة لعلها تعمل معك, بس لو أشتغلت يبقى التاريخ المسجل فى الجدول فية شئ من مظبوط, لان كان المفروض أى واحد من الاستعلامين اللى كتبتهم لك فى الرد رقم 6 يشتغل  .

$todaynow = time() - (86400); // (86400 = 1 day)
$selectaccount = mysql_query("select * from accounts where date > '$todaynow' order by $orderby $store LIMIT $start, $limit") or die(mysql_error());

علما بأن :

where date > '$todaynow'

date: هو أسم العمود اللى مسجل فية التاريخ.

تم تعديل هذه المشاركة بواسطة مستر برمجة في 25 فبراير 2014 في 02:26

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#14

شباب انا كشفت المشكلة من وين ... لكن ما اعرف احلها للأسف . :D

 

طبعا بال بداية . 

$selectaccount = mysql_query("select * from accounts where FROM_UNIXTIME(twentyone) LIKE '%$todaynow%' order by $orderby $store LIMIT $start, $limit") or die(mysql_error());

هذا الكود صحيح لكن اين المشكلة ..

 

المشكلة هي.

 

المستخدم لما يقوم يضيف بيانات هتنزل البيانات حسب تاريخ الجهاز اليوم و الشهر و السنة . هكذا 26-12-2013

و انا في الأستعلام todaynow جلبت فقط اليوم مثلا

$todaynow = date("d");

طيب الأن مثلا تاريخ جهازي 26-12-2013 مش هيجيب البيانات الا اقوم بتصحيح تاريخ الجهاز مماثل ل تاريخ الذي اضاف به الحساب يعني يجب على تاريخ الجهاز يكون 26-12-2013 حتى يجيبلي كل بيانات حسب التاريخ ..

 

 

المطلوب هو فصل تاريخ اليومي في قاعدة بيانات و جلب البيانات فقط عن طريق اليوم . اكيد فهمتوا 

انا ما بدي يجيب بيانات الي حطت في يوم و سنة و شهر انا بدي اجيب بيانات الي حطت في يوم فقط 

 

مثلا اذا اليوم هو 26 في الشهر يجيب كل بيانات اضافت في 26 في الشهر . لا تريد جلب بيانات عن طريق شهر و سنة فقط اريد جلب البيانات عن طريق رقم اليوم مثلا 26 او 27 او 30 او 31 يعني جلب البيانات عن طريق رقم اليومي فقط .

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 25 فبراير 2014 في 04:10

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#15

السلام عليكم ورحمة الله وبركاته،،

أخي على حسب فهمي اعتقد انك تحتاج انك تجزء التاريخ الذي تشرط منه وكذلك الذي تأتي به من قاعدة البيانات أي:"تاخذها يوم لحال وشهر لحال وسنة الحال".. بعطيك مثال وجرب تطبقه على التاريخ الي يدخل وكذالك التاريخ الي تجيبه من قاعدة البيانات:

 

    $exp = explode("-",$date_from_db);
    //year 
  $d = $exp[0];
  //Month
  $m = $exp[1];
  //Day 
  $y = $exp[2];
 
وهنا لاعادة تركيب التاريخ:
 
$remake_d=mktime('0','0','0',$m,$d,$y);
$new_date=date("Y/m/d",$remake_d);

من ذلك تستطيع التلاعب بالتاريخ والشرط بتحديد أكثر،، تذكر أنك تستطيع تجعل للمستخدم خانات منفصلة لليوم والشهر والسنة وبذلك تستطيع تصل للبيانات المطلوبة.

آمل أن يساعدك ذلك،،

تحياتي لك

#16

post-281769-0-26890600-1393293932.png

eng.bandr كتب:

السلام عليكم ورحمة الله وبركاته،،

أخي على حسب فهمي اعتقد انك تحتاج انك تجزء التاريخ الذي تشرط منه وكذلك الذي تأتي به من قاعدة البيانات أي:"تاخذها يوم لحال وشهر لحال وسنة الحال".. بعطيك مثال وجرب تطبقه على التاريخ الي يدخل وكذالك التاريخ الي تجيبه من قاعدة البيانات:

 

    $exp = explode("-",$date_from_db);
    //year 
  $d = $exp[0];
  //Month
  $m = $exp[1];
  //Day 
  $y = $exp[2];
 
وهنا لاعادة تركيب التاريخ:
 
$remake_d=mktime('0','0','0',$m,$d,$y);
$new_date=date("Y/m/d",$remake_d);

من ذلك تستطيع التلاعب بالتاريخ والشرط بتحديد أكثر،، تذكر أنك تستطيع تجعل للمستخدم خانات منفصلة لليوم والشهر والسنة وبذلك تستطيع تصل للبيانات المطلوبة.

آمل أن يساعدك ذلك،،

تحياتي لك

    

 

 

 

 

post-281769-0-52489600-1393293968.png

#17

اخي العزيز 

eng.bandr

 

اخي العزيز

بنسبة الكود هذا لم افهم شيئا به     $exp = explode("-",$date_from_db);

ما هو $date from db

 

?

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#18
هالي الدهوكي كتب:

اخي العزيز 

eng.bandr

 

اخي العزيز

بنسبة الكود هذا لم افهم شيئا به     $exp = explode("-",$date_from_db);

ما هو $date from db

 

?

أخي هالي هذا مجرد متغير المقصود به التاريخ الذي استوردته من قاعدة البيانات و explode دالة تفكك التاريخ او بالاحرى تفكك ما بين علامة - ووضعنا الناتج بالمصفوفة exp وبعد ذلك اخذن اليوم على حده والشهر والسنة..

تحياتي

#19

اخي لم يتم الحل ... اعتقد الحل هو تدخلون على جهازي و او في عندي مشكلة في كتابة او نسخ الكود او لم تفهموا مشكلتي بال ضبط .

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#20

بصراحة كبيرة انا اصعب حل واجهته في هذه المشكلة لا اعرف هل لا يوجد لها حل ام هل انتم لا تفهمون ما هو اصلا موضوع المشكلة ؟ .

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#21

أخى العزيز

 

حاول أن تقوم بالابتعاد قليلا عن الاسكربت الذى تعمل علية الان, وتقوم بعمل مثال صغير لكى تختبر الطرق التى قمنا بإعطائها لك فى الردود السابقة.

 

  • قم بعمل قاعدة بيانات جديدة, ثم قم بعمل جدول كنفس الجدول الذى فى الاسكربت الذى يوجد بة المشكلة, ولا تنسى أن تقوم بعمل العمود الذى يخزن فية التاريخ يكون نوعة INT, أى يقبل قيمة رقمية .
  • أعمل صفحة صغيرة تقوم بإضافة البيانات فى هذا الجدول الذى قمنا بإنشائة, وعند إضافة البيانات فى الجدول قم بأستخدام الدالة time() لإضافة القيمة التى تخرجها الدالة لكى يتم حفظها فى فى عمود التاريخ.
  • قم بإنشاء صفحة أخرى تقوم بعرض النتائج حسب تاريخ اليوم, وذلك بإستخدام الامثلة والتى أعطيناها لك فى الردود السابقة كمثال.
$todaynow = date('d');
SELECT * FROM accounts WHERE DAY(FROM_UNIXTIME(date)) = '$todaynow'

أو

SELECT * FROM accounts WHERE DAY(FROM_UNIXTIME(date)) = DAY(CURDATE())

أو

$todaynow = time() - (86400); // (86400 = 1 day)
$selectaccount = mysql_query("select * from accounts where date > '$todaynow' ") or die(mysql_error());

قم بتجربة كل مثال على حدة حتى تجد أفضلهم أو حتى تجد المثال الذى يعمل معك جيدا .

طبعا نحن نقوم بعمل ذلك حتى نتأكد من سبب المشكلة, جرب وأنتظر ردك .

تم تعديل هذه المشاركة بواسطة مستر برمجة في 5 مارس 2014 في 11:42

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#22

اخي العزيز مستر برمجة :) شكرا جزيلا لك يا حبيبي ^_^ الكود لحد الأن يعمل بدون مشاكل انا جربت الكود الذي اعطيتني هو .

$todaynow = date('d');
SELECT * FROM accounts WHERE DAY(FROM_UNIXTIME(date)) = '$todaynow'

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

ان DAY هي تأخذ فقط اليوم من Unixtime الذي هو في قاعدة بيانات . يأخذ تاريخ اليومي فقط و يحقق منه اذا كان يساوي المتغير . هل هذا صحيح ...

 

و مثلا لو اريد التحقق من الشهر هل هنالك خاصيات اخرى مثل MONTH او YEAR او SECONDS او MINUTES

مثلا 

YEAR()

MONTH()

SECONDS()

MINUTES()

هل يمكنني استعمال هذه الخاصيات ؟ او لا يوجد في تاريخ ال php اصلا :D ما اقصده هههههه

 

لكن سوف اجرب كثيرا لكي اجد اذا كان في الكود هذا مشاكل اخرى ربما هنالك مشاكل ربما لا بس اكيد لا 100% مافي اي مشكلة بعد لانه بجد انحلت المشكلة و انا متأكد و إن شاء الله مايكون غير مشاكل فيها .

 

عل عموم اخي العزيز سوف اقول لك المشكلة من اين كانت :D المشكلة 100% كانت من قاعدة بياناتي لانه انا كنت حاطط للوقت VARCHAR  و لما حولتها الى INT المشكلة حلت و الف الحمدالله .

تم تعديل هذه المشاركة بواسطة هالي الدهوكي في 6 مارس 2014 في 00:45

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

#23
اقتباس

و مثلا لو اريد التحقق من الشهر هل هنالك خاصيات اخرى مثل MONTH او YEAR او SECONDS او MINUTES

مثلا 

YEAR()

MONTH()

SECONDS()

MINUTES()

 

هذة الدوال تسمى دوال Mysql, أى لا تنتمى إلى PHP, وهما كالاتى :

 

  • DAY() :  تستخدم لاستخلاص رقم اليوم من التاريخ.
  • MONTH() :  تستخدم لاستخلاص رقم الشهر من التاريخ.
  • YEAR() :  تستخدم لاستخلاص السنة من التاريخ.
  • HOUR() :  تستخدم لاستخلاص الساعة من التاريخ.
  • MINUTE() :  تستخدم لاستخلاص الدقيقة من التاريخ.
  • SECOND() :  تستخدم لاستخلاص الثانية من التاريخ.

 

طبعا طريقة أستخدام هذة الدوال بنفس الشكل كما فى المثال أستخدام الدالة DAY .

لكن لا تنسى أن هذة الدوال تتعامل مع التاريخ بهذا الذى يكون بهذا الشكل  30/5/2014 - 08:15:11 .

أى أنها لا تتعامل مع UNIXTIME بشكل مباشر, ولهذا قمنا بأستخدام الدالة  FROM_UNIXTIME , لكى يتم تحويلها إلى التاريخ العادى كما شرحت فى النقطة السابقة .

 

 

أتمنى أن تكون المشكلة تم حلها فعلا, وحاول أن تبحث عن سبب المشكلة فى الاسكربت الخاص بك, وبإذن الله ستجدها.

 

بالتوفيق .......

||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||


egypt_coa.gif


||||||||||||||||||||||||||||||||||||


||||||||||||||||||||||||||||||||||||

#24

اخي اعزيز المشكلة لم تكن من السكربت المشكلة كانت من نوع الحقل الخاص بال تاريخ كان نوع الحقل VARCHAR و لما جيت حولته الى INT عملت الدالة معي و بدون مشاكل لكن على على التجارب اذا ضهرت لي اي مشكلة لكن الحمدالله لحد الأن لا مشاكل و انا مستمر في تجارب الدالة و الف حمدالله و اشكركم جدا لوجودك و وجود اعضاء الأخرين معي تسلموا :)

Professional Technology Information

HTML , CSS , PHP , JQuery , Action Script

Photographic Designer & websites Designer : Dinamic Sites & photographic Sites & Flash Sites

IF YOU WANT SEE MY WORKS

VISIT THIS LINK

Prince Designs

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

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

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

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

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