• 0
fatmaali

مشكلة فى جلب احصائية من جدول معين

سؤال

السلام عليكم ا هذا الكود الخاص باالاحصائية

 

اريدة ان يحتسب اكبر الاعداد المقاربة للحد

 

يعني مثلا عندي رقم اساسى وهوا 300 مثلا ويرمز له في الكود بـ $hade

 

وهناك مدخلات  مضافة في جدول arc

 

لنقل مثلا ة الكود

 

100

 

200

 

288

 

وظيفة الكود هوا احتساب اكبر عدد مقارب للرقم الاساسي وهوا 300 الذى نرمز اليه ب $hade

 

 

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

 

 

واذا اضفت اكثر من رقم مقاربين بردو يعطينيى واحد

 

 

اريد ان اعرف ما المشكلة فى الاستعلام

<?php$max = $hade;$query2 = mysql_query("SELECT MAX(mzayda) AS highNum FROM arc WHERE prod_id='$pp' and mzayda <= $max and tap=0 ");$accounts=mysql_num_rows($query2);if($accounts==0){echo "<b><font color='#ff000'>0</font></b>";}else{echo "<b><font color='#ff000'>$accounts</font></b>";}?>
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

3 إجابة على هذا السؤال .

  • 0

بسيط ان شاء الله ,

سناخذ اول رقم اكبر او يساوي $max

SELECT mzayda FROM arc WHERE prod_id='$pp'  and tap=0 and mzayda>=$max order by mzayda asc limit 1

ثم سنأخذ اول رقم اصغر من او يساوي $max

SELECT mzayda FROM arc WHERE prod_id='$pp'  and tap=0 and mzayda<=$max order by mzayda desc limit 1

سنقارن الرقمين بجملة IF و نختارالاقرب بحيث يكون الفرق بين $max و احد الرقمين هو الاصغر و الا فالرقمين متشابيهن اد يكون الفرق بينهم نفس الشيء

مثال

$num1=299;$nam2=305;if(abs($max-$num1) > abs($num2-$max) ){// $num2 is more accurate}else{$num1 is more accurate}

بالطبع هذه طريقة واحدة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الكود صحيح اخي لكن قمت بتجربته بشكل اخر

 

 

استفسار بسيط اخر اخي الفاضل كيف اضع هذا الكود بدلاله متغير مثل

$fatma= (int) $_GET['pp'];

 

 

مثل كذا

where prod_id='$fatma'

وهذا هوا الاستعلام المطلوب وضع الدلاله به

$query2a = mysql_query("SELECT id_arc FROM arc INNER JOIN( SELECT mzayda FROM arc GROUP BY mzayda HAVING COUNT(mzayda) > 1) temp ON arc.mzayda=temp.mzayda");
$fatma= (int) $_GET['pp'];$query2a = mysql_query("SELECT id_arc FROM arc INNER JOIN( SELECT mzayda FROM arc GROUP BY mzayda HAVING COUNT(mzayda) > 1) temp ON arc.mzayda=temp.mzayda");        while ($rowali = mysql_fetch_assoc($query2a)) {            $res2[] = $rowali;        }        $repeated = array();        foreach ($res2 as $value) {            foreach ($value as $value2) {                $repeated[] = $value2;            }        }        if (!$count3rod) {            $count3rod = 0;        }        $aliid = (int) $_GET['pp'];        $TotalRecords = mysql_query("SELECT * FROM arc  where prod_id='$aliid' ORDER BY id_arc desc");        $check_end = mysql_num_rows($TotalRecords);        $pages1 = 50;        $check_end = ceil($check_end / $pages1);        $limit = ($count3rod > 1) ? ($count3rod - 1) * $pages1 : 0;        $aliid = (int) $_GET['pp'];        $selectt = "SELECT * FROM arc  where prod_id='$aliid'  ORDER BY id_arc desc LIMIT $limit,$pages1 ";        $Result = mysql_query($selectt);        $account3rod = mysql_num_rows($Result);        $sd = 0;        while ($Roow = mysql_fetch_assoc($Result)) {            $sd++;            extract($Roow);            ?>      }

حاولت تجربة الكود بكافة الطرق ولم يعمل بشكل سليم يطلع لي خطاء فى هذا السطر

 

        foreach ($res2 as $value) {

تم تعديل بواسطه fatmaali
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

في انتظار الرد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .