حمید
3 سال پیش توسط حمید مطرح شد
1 پاسخ

شمارش ردیفها بر اساس مقادیر خاص از دیتابیس و نمایش در جدول

سلام مهندس
حقیقتا کلی گشتم ولی جوابی پیدا نکردم ، ممنون از اینکه وقت میزاری و پاسخ میدی
به یه مشکل خوردم من چنین جدولی دارم در ویو :
توضیح تصویر رو وارد کنید
و این هم کد من هست :

if(isset($_POST["from_date"], $_POST["to_date"]))
{

    $time = $_POST["from_date"];
    $jDate = preg_split( "@(\s*&\s*)?[/\s,:]+@", $time);
    $date = (new \Morilog\Jalali\Jalalian($jDate[0], $jDate[1], $jDate[2]))->toCarbon()->toDateTimeString();
    $_POST['from_date'] = $date;
    $time2 = $_POST["to_date"];
    $jDate2 = preg_split( "@(\s*&\s*)?[/\s,:]+@", $time2);
    $date2 = (new \Morilog\Jalali\Jalalian($jDate2[0], $jDate2[1], $jDate2[2]))->toCarbon()->toDateTimeString();
    $_POST['to_date'] = $date2;

    $userCode = \System\Auth\Auth::user()->usercode;

    $queries .= "SELECT tblorders.product_qty,tblorders.shop_master_code
                 , tblorders.product_com,tblcustomers.created_at
                 , tblcustomers.order_status, tblcustomers.shop_master_code
                  FROM tblcustomers
                 INNER JOIN tblorders
                 WHERE tblcustomers.created_at BETWEEN '".date('Y-m-d', strtotime($_POST["from_date"]))
                ."' AND '".date('Y-m-d', strtotime($_POST["to_date"]))
                ."' AND tblcustomers.shop_master_code = ".$userCode."  GROUP BY CAST(tblcustomers.created_at AS DATE) ORDER BY tblcustomers.created_at ";

    $pdoInstance = DBConnection::getDBConnectionInstance();
    $statement = $pdoInstance->prepare($queries);
    $statement->execute();
    $orders = $statement->fetchAll();

    $output .= '
    <table class="table table-bordered table-striped text-center">
                                                <thead>
                                                <tr>
                                                    <th>تاریخ</th>
                                                    <th rowspan="1" colspan="2">معلق</th>
                                                    <th rowspan="1" colspan="2">آماده</th>
                                                    <th rowspan="1" colspan="2">ارسال</th>
                                                    <th rowspan="1" colspan="2">توزیع</th>
                                                    <th rowspan="1" colspan="2">برگشتی</th>
                                                </tr>
                                                <tr>
                                                    <th>#</th>
                                                    <th >تعداد</th>
                                                    <th>پورسانت</th>
                                                    <th >تعداد</th>
                                                    <th>پورسانت</th>
                                                    <th >تعداد</th>
                                                    <th>پورسانت</th>
                                                    <th >تعداد</th>
                                                    <th>پورسانت</th>
                                                    <th >تعداد</th>
                                                    <th>پورسانت</th>
                                                </tr>
                                                </thead>
                                                <tbody>

    ';
    $array = array();

    foreach ($orders as $order)
        {

            $total_com[] = ($order["product_qty"] * $order["product_com"] );

            $array_status = array(
                $order["order_status"]
            );
            $array[] = $order["order_status"];

            $output .= '

                     <tr class="btn-reveal-trigger">
                        <td>'. \Morilog\Jalali\Jalalian::forge($order["created_at"])->format('%Y/%m/%d') .'</td>
                        <td>'.$array[0].'</td>
                        <td>0</td>

                        <td>0</td>
                        <td>0</td>

                        <td>0</td>
                        <td>0</td>

                        <td>0</td>
                        <td>0</td>

                        <td>0</td>
                        <td>0</td>
                     </tr>

                ';
        }

$output .= '

</tbody>
                                            </table>
';
    $data = array(
        'data' => $output,

    );

   echo json_encode($data);
}

و حالا داخل جدول tblcustomers به این صورت هست:
توضیح تصویر رو وارد کنید

توضیحات : در مورد مقادیر orderstatus :
معلق = 4
آماده = 7
ارسال = 8
برگشتی = 9
توزیع = 10

حالا میخوام داخل هر ردیف در قسمت صحیحش از جدول خروجی ها به این صورت نمایش داده بشه :
توضیح تصویر رو وارد کنید


ثبت پرسش جدید
محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

سلام دوست عزیز
در مرحله ی اول پیشنهاد میکنم در صورت سوال یک نفر رو تگ نکن چون بقیه معمولا دیگ جواب نمیدن و راهنمایی نخواهند کرد خیلیا چون میگن حتما در جریانه اون شخص
مرحله دوم لطفا ساختار دو جدولت که join شده رو قرار بده tblcustomers و tblorders ببینم ستون هاشون چیه

حالا مورد مشکل اولی که واضح هست و دیده میشه به راحتی شما برای join نیاز به شرط برای این ارتباط دو جدول داری که بگی جوین روی چی که از کلمه کلیدی on استفاده میشه و باید شرط join رو قرار بدی

سوالی که دارم اینه که شما دقیقا چیو count گرفتی توی کدی که زدی که قراره تعدادش بهت داده بشه؟
من count نمیبینم
این تعداد مد نظرت که توی جدول هست از کجا میاد؟

و مورد اخر یک پیشنهاد دارم
برای جدول customer فیلدی که عدد گذاشتی و تعریف کردی هر کدوم چی هست بیا از نوع داده ای enum که یک فیلد چند مقداری هست استفاده کن یه سرچ ساده راجبش بزن خوانایی کدت میره بالا و خودت هم گیج نمیشی که این عدد برای چی بود


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام