سؤال

أنا مبتدئ عندما يتعلق الأمر بـ SQL وPHP، وأحاول تقريب نتيجة متوسط ​​السعر وإزالة الأصفار الإضافية التي تظهر حاليًا.

حاليًا تظهر نتيجتي على النحو التالي:3.005000 دولار

يقرأ الكود الخاص بي حاليًا كما يلي:

$result = mysql_query("SELECT AVG(price) FROM milk WHERE price > 0 ");
$row = mysql_fetch_row ($result);

لقد وجدت العديد من الأمثلة على تقريب SQL واقتطاعه، لكن لسوء الحظ، لم تزودني البرامج التعليمية التي رأيتها بأي معلومات مفيدة حول المكان أو الطريقة التي من المفترض أن أقوم بها بتنفيذ هذه التغييرات.

وهذا يتركني أقوم بالتخمينات حول مكان إجراء التغييرات - ولم ينجح أي منها حتى الآن (من الواضح).

إذا كان بإمكان شخص ما أن يقدم لي مثالاً عن كيفية تقريب نتائجي واقتطاعها، والذي يتضمن المكان الذي أحتاج فيه بالضبط إلى إجراء هذه التغييرات في التكوين الحالي الخاص بي، فسيكون ذلك مفيدًا للغاية وسأكون ممتنًا للغاية!أنا آسف حقًا إذا كان n00bishness يجعل شرح الحل أكثر صعوبة.

شكرًا!

هل كانت مفيدة؟

المحلول

يحتوي MySQL على دائري() وظيفة.

لذلك فقط قم بتقريب المتوسط ​​الخاص بك في استعلام SQL الخاص بك:

$result = mysql_query("SELECT ROUND(AVG(price),2) FROM milk WHERE price > 0 ");

إذا واجهت مشكلات في التنسيق، فيمكنك استخدام لغة PHP number_format() وظيفة أثناء الإخراج.

نصائح أخرى

يجب أن يتم تنسيق البيانات في البرنامج النصي الذي يقوم بإجراء الاستعلام، وليس في الاستعلام نفسه.على سبيل المثال، في PHP يمكنك كتابة ما يلي باستخدام sprintf:

$formatted_price = sprintf("%01.2f", $unformatted_price);

(مثال على مكملات دليل PHP).

وبشكل عام، يتم أيضًا تخزين قيم الأسعار كـ decimal الأنواع أو الأعداد الصحيحة المقاسة، وليس أنواع الفاصلة العائمة، نظرًا لأن قيم الفاصلة العائمة ليست دقيقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top