اذهب إلى المحتوى
  • 0

مشكلة في استعلام mysql

محمد المصري12

السؤال

سلام عليكم

2021-06-05_115-44-02.jpg.f3eb9c106edc68614c1068ccef445486.jpg

جدول supplying_items هو جدول جميع بنود التوريد بالنظام ، و عند تسجيل مورد جديد و تحديد اختيار بنود التوريد تظهر لنا قائمة فيها كل بنود التوريد و يتم اختيار احداها فقط لتسجل في جدول supply_item 

اريد عرض بنود التوريد من جدول supplying_items  المخصصة فقط لمورد معين 

انا في صفحة الاستعراض كتبت استعلام مجمع كالتالي

 

<?php

session_start();

if ($_SESSION['permission'] != 1)
    header("location: login");

include("includes/db.php");
$title = "تعديل مورد";

$id = $_GET['id'];

$query  = "SELECT * FROM suppliersdb WHERE id =".$id.";";

$query .= "SELECT * FROM  suppliers_contacts WHERE supplier_id =".$id.";";

supply_item.item AS SIitem FROM supplying_items , supply_item WHERE  supply_item.supplier_id=".$id.";";

$query .= "SELECT * FROM supplying_items INNER JOIN supply_item ON supplying_items.id = supply_item.item WHERE  supply_item.supplier_id=".$id."; ";

//supplying_items.id    الاي دي الخاص ببنود التوريد بشكل عام من جدول بنود التوريد
//supplying_items.name    اسم بنود التوريد كاملة دون تخصيص - يتم استخراجها من جدول بنود التوريد
// supply_item.supplier_id   رقم اي دي المورد من جدول بنود التوريد المخصصه و ليس العامة
// supply_item.item =   رقم بند التوريد في جدول بنورد التوريد المخصصة
// supplierdb = قاعدة بيانات الموردين

$res = array();
if (mysqli_multi_query($conn, $query)) {
    $i = 0;

    do {

        $res[$i] = array();

        if ($result = mysqli_store_result($conn)) {

            while ($row = mysqli_fetch_assoc($result)) {
                array_push($res[$i], $row);
            }
            mysqli_free_result($result);
        }

        $i = $i +1;

    } while (mysqli_next_result($conn));
}

$user = $res[0][0];
$contacts = $res[1];
$item = $res[2];



//var_dump();
//die();
?>

عاوز الان بناء على الاستعلام ده

$query .= "SELECT * FROM supplying_items INNER JOIN supply_item ON supplying_items.id = supply_item.item WHERE  supply_item.supplier_id=".$id."; ";

عاوز اخرج اسم بنود التوريد الخاصة بالمورد الذي يتم استعراض تفاصيله فقط

الكود الخاص بجزء بنود التوريد كالتالي

<!-- items -->
                    <div class="main-card mb-3 card">
                        <div class="card-body text-center">
                            <h3 class="card-title">بنود التوريد</h3>
                            <div class="form-row items">

                                <div id="itemsCountDiv" class="col-12">

                                    <label class="required">عدد الخامات التي تقوم هذه الشركة بتوريدها </label>

                                    <div class="input-group">

                                        <div class="input-group-prepend">

                                            <span class="input-group-text" id="inputGroupPrepend"><i class="fa fa-th"></i></span>

                                        </div>

                                        <input type="number" min="1" max="24" class="form-control items-count" value="<?php echo count($item); ?>" >

                                        <div class="input-group-append">

                                            <button type="button" class="btn btn-success items-count-btn">إضافة</button>

                                        </div>

                                    </div>

                                </div>
                                <?php

if (isset($item) && !empty($item)){


    foreach ($item as $item){

        ?>

<div class="form-row items col">
                                    <div class="col co">
                                        
    <div class="form-group">

     <input type="text" class="form-control contact-name" placeholder="الاسم" value="<?php echo $item['supplying_items.name']; ?>" disabled >
      </div>
      <label for="sel1">اختر مورد</label>
      <div class="input-group">

      <select class="form-control items-mo" id="sel1">
 <?php

$result = $conn->query("SELECT * FROM supplying_items");

 while ($row = $result->fetch_assoc()) {

echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';

}

 ?>

      </select>

                     
                                        </div>
                                    </div>
                                    
                                   
                                </div>
        <?php


    }


}


?>


                            </div>

                        </div>
                    </div>

الخطأ الذي يظهر لي 

Undefined index: supplying_items.name 

ازاي احل الازمة دي فضلا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يظهر الخطأ في القراءة من الإستعلام في عناصر التوريد و بالضبط في هذا السطر : 

<input 
       type="text" 
       class="form-control contact-name" 
       placeholder="الاسم" 
       value="<?php echo $item['supplying_items.name']; ?>" disabled >

وهذا لأن طريقة القراءة في كود PHP تختلف عن طريقة القراءة في إستعلام SQL . في PHP لا يوجد أي عنصر بالفهرس supplying_items.name من الناتج و لكن يوجد مصفوفة بإسم supplying_items تحوي عنصر بالفهرس name .

أي أن القراءة تكون على هذا النحو : 

<input 
       type="text" 
       class="form-control contact-name" 
       placeholder="الاسم" 
       value="<?php echo $item['supplying_items']['name']; ?>" disabled >

أو : 

<input 
       type="text" 
       class="form-control contact-name" 
       placeholder="الاسم" 
       value="<?php echo $item['name']; ?>" disabled >

إن كنت تقوم بالتكرار حول عناصر التوريد supplying_items لأن الدور الخاص بك غير واضح .

إن لم يقم هذا بحل مشكلتك يرجى إرفاق كامل الكود . 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

عظيم جدا

تم حلها بهذا الكود

<input 
       type="text" 
       class="form-control contact-name" 
       placeholder="الاسم" 
       value="<?php echo $item['name']; ?>" disabled >

حين اجد ردودك على اسئلتي اعلم تماما ان المشكلة قد حلت و اني سأتعلم شئيا جديدا

شكرا لك جدا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...