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

حساب مجموع الاسماء التي في الجدوال

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

السلام عليكم

 

اخواني اريد كود يجمع لي كم الاسماء المتكررة في الاسم والعمر

 

يوجد لدي جدول stud وفية حقل name وفية الاسماء وحقل age فية العمر

 

اريد ناتج الاستعلام يكون هكذا...

 

اسم احمد = 10

اسم خالد = 2

 

يعني ان اسم احمد مكرر 10 مرات وخال مكرر 2 مرة

 

 

وهكذا كل الاسماء ويحسبها لي والعمر ايضا نفس الشئ

 

 

كيف اسوي هذا الاستعلام....

 

 

وشكرا

#2

السلام عليكم

 

عليك بالإطلاع على GROUP BY والدوال المستخدمة معها لتستطيع التعامل مع هذه النوعية من الإستعلامات وهذا رابط مثال على موقع w3shools

 

الإستعلام عن الاسماء ومجموع تكرار كل اسم يكون على النحو التالي :

SELECT name, count( name ) FROM stud GROUP BY name

والإستعلام عن العمر وعدد مرات تكرار كل عمر كالتالي :

SELECT age, count( age ) FROM stud GROUP BY age
1

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

لا إله إلا أنت سبحانك إني كنت من الظالمين

#3

الكود يظهر لي جميع الاسماء فقط ولايظهر كم عدد الاسماء المكررة

 

الكود

$query = " SELECT name, count( name ) FROM data GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){ ?>

<td><?php echo $row['name'];} ?></td>
#4

عزيزي أنت من طبعت حقل الاسم فقط ؟!!!

 

الإستعلام يعيد مصفوفة عنصرها الأول هو الاسم والثاني عدد مرات التكرار على الترتيب (أي على حسب ترتيب الحقول في الإستعلام) كالتالي:

<?php echo $row[0].' '.$row[1];} ?>

- أو استخدام اسماء الحقول التي تم جلبها بنفس الاسماء في الإستعلام كالتالي :

<?php echo $row['name'].' '.$row['count( name )'];} ?>

- مع ملاحظة أن اسم الحقل الثاني يكتب بنفس الصيغة وإن إحتوى على فراغات يجب أن تكتب أيضاً , ولتلاشي هذا يمكن لنا إستخدام AS لإعادة تسمية الحقل كالتالي:

SELECT name, count( name ) AS sumation FROM stud GROUP BY name

ويصبح كود الطباعة :

<?php echo $row['name'].' '.$row['sumation'];} ?>

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

لا إله إلا أنت سبحانك إني كنت من الظالمين

#5

الله يعطيك العافية اخي ahmedsaoud31

 

لو سمحت اضافة بسيط لو اريد ان اضافة على الاستعلام ان يظهر لي جميع الاسماء التي تكون متكررة اكثر من 3 مرات

 

يعني في قاعدة البيانات لو ان اسم احمد مكرر 2 مرات واسم خالد مكرر 4 مرات واسم محمد مكرر 7 مرات يظهر الناتج 

 

خالد 4

محمد 7

 

 

الكود

$query = " SELECT name, count( name ) FROM data GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){ 
echo $row['name'].' '.$row['count( name )'];}
#6

ستستخدم جملة HAVING كالتالي :

SELECT name, count(name) FROM data GROUP BY name HAVING COUNT(name) > 2

وأيضاً الأمر بسيط من خلال التحقق من القيمة بواسطة كود php كالتالي :

if($row['count( name )']>2){
    echo $row['name'].' '.$row['count( name )'];
}

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

لا إله إلا أنت سبحانك إني كنت من الظالمين

#7

تعبتك معي اخي ahmedsaoud31 الله يعطيك العافية

 

آخر طلب لو اريد اضافة على الاستعلام بحيث يظهر البيانات المطلوبة بس لاربع الايام الماضية طبعا التاريخ مخزن في قاعدة البيانات على شكل time() في الجدول data الحقل data

 

طبعا اضفت الكود التالي ولم يظهر لي اي ناتج او اي رسالة خطاء

 

$query = " SELECT name,data, count( name ) FROM data WHERE data.data = DATE_SUB(CURDATE(),INTERVAL 4 DAY) GROUP BY name";

تم تعديل هذه المشاركة بواسطة man in dark في 11 مارس 2013 في 10:44

#8

السلام عليكم

 

استخدم المعامل >= بدلاً من معامل المساواة =

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

لا إله إلا أنت سبحانك إني كنت من الظالمين

#9

نفس المشكلة لم يظهر لي اي ناتج او اي رسالة خطاء

 

<?php 
$query = " SELECT name,data, count( name ) FROM data WHERE data.data >= DATE_SUB(CURDATE(),INTERVAL 4 DAY) GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){ 
    if($row['count( name )']>0){
    echo $row['name'].' '.$row['count( name )'];
}} ?>
#10

السلام عليكم

 

أخي الإستعلام صحيح , راجع الحقول في قاعدة البيانات الخاصة بك , أنت ذكرت أن حقل التاريخ لديك نوعه هو time وحقل التاريخ يكون إما date أو timestamps , ففي حالة المقارنة بإستخدام هذه الدالة إستخدم حقل من نوع DATE .

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

لا إله إلا أنت سبحانك إني كنت من الظالمين

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

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

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

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

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