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

مشكلة في القراءة من جدولين عن طريق الإستعلام JOIN

محمد المصري12

السؤال

السلام عليكم 

عندي جدولين

  • الاول اسمه common_cloth_composition
  • و الثاني اسمه commercial_description

الربط بين حقلين في الجدولين 

الحقل الاول باسم common_cloth_composition.ready

الحقل الثاني باسم commercial_description.id

الاستعلام

اعرضلي ما هو مكتوب في حقل name بجدول common_cloth_composition

عندما يكون الforignkey او ال ID بجدول common_cloth_composition 

يساوي 127 مثلا 

استعلامي كان كالتالي

SELECT common_cloth_composition.id AS CID,

       common_cloth_composition.ready AS readyId,
       
       commercial_description.id AS commID,
       
       commercial_description.name AS commName
       
       FROM 
       
       common_cloth_composition
       
       INNER JOIN 
       
       commercial_description
       
       ON 
       
       common_cloth_composition.ready = commercial_description.id && common_cloth_composition.id='127'

عند التنفيذ لا يظهر اي شئ فقط تظهر لي الرسالة التالية 

 

 Warning: #1292 Truncated incorrect DOUBLE value: 'مجهز'

علما بأن ال value  المسماه مجهز توجد كقيمة غير مستدعاه اصلا في الاستعلام و حتى لو موجودة فال ID رقم 127 المضروب به المثل لا يحتوي على هذه القيمة اصلا

ارجو ان يكون سؤالي واضحا و انتظر معرفة غلطي مع الشكر

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

Recommended Posts

  • 1

ليكن في العلم أنه بعد ضم الجدولين عن طريق JOIN فأنت تقوم بضم كل سطر من الجدول 1 إلى السطر المرافق من الجدول 2 , بحيث أنه سيتم تحديد الترافق هذا عن طريق تساوي المفاتيح من الجدولين . 

الان و بعد عمل الضم على هذا النحو : 

SELECT common_cloth_composition.id AS CID,

       common_cloth_composition.ready AS readyId,
       
       commercial_description.id AS commID,
       
       commercial_description.name AS commName
       
       FROM 
       
       common_cloth_composition
       
       INNER JOIN 
       
       commercial_description
       
       ON 
       
       common_cloth_composition.ready = commercial_description.id

لاحظ أن هذا الإستعلام سيقوم بجلب كل الأسطر من الجدولين التي تتساوى فيها المفاتيح , يمكنك الان تصفية النتائج و إضافة شرط التساوي عن طريق WHERE :

SELECT common_cloth_composition.id AS CID,

       common_cloth_composition.ready AS readyId,
       
       commercial_description.id AS commID,
       
       commercial_description.name AS commName
       
       FROM 
       
       common_cloth_composition
       
       INNER JOIN 
       
       commercial_description
       
       ON 
       
       common_cloth_composition.ready = commercial_description.id

       WHERE 
       
       common_cloth_composition.ready='127'

 

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

  • 0

سبحان الله الخطأ كان تافه جدا

كان اسم واحد من جداول الربط غلط ، لاني جربت شرط WHERE كتير ما كانش ظابط 

عموما اشكرك جزيل الشكر على مساعدتك و احب ان انوه اني استفيد من ملاحظاتك لي تنظيف الكود

و ارجو ان لا تحرمني رأيك في تنظيف هذا الكود فضلا

<?php

session_start();

if ($_SESSION['permission'] != 1)
      header("location: login");
include("includes/db.php");



$title = "تعديل البيانات الرئيسيه للقماش";
$sub_title = "البيانات الرئيسية - لا يمكن التعديل على نسب الخلط ";
$id = $_GET['id'];
//الاستعلام

$main_query = "SELECT * FROM common_cloth_composition WHERE id = ".$id.";";
$query = "SELECT common_cloth_composition.id AS CID,
common_cloth_composition.des AS desId,
commercial_description.id AS commID, 
commercial_description.name AS commName
FROM
common_cloth_composition
INNER JOIN
commercial_description
ON 
common_cloth_composition.des = commercial_description.id 
WHERE 
common_cloth_composition.id='$id' ";
$query1 = "SELECT * FROM commercial_description ";

$result1 = $conn->query($main_query) or die($conn->error) ;
$result2 = $conn->query($query) or die($conn->error) ;
$result3 = $conn->query($query1) or die($conn->error) ;
?>

<!doctype html>

<html lang="ar">



<head>

    <?php include("includes/head.php"); ?>



<body>

    <?php //include("includes/loader.php"); ?>

    <div class="app-container app-theme-white body-tabs-shadow fixed-sidebar fixed-header">

        <?php include("includes/app-header.php"); ?>

        <?php include("includes/ui-theme-settings.php"); ?>

        <div class="app-main">

            <?php include("includes/sidebar.php"); ?>

            <div class="app-main__outer">

                <div class="app-main__inner">

                    <div class="app-page-title">

                        <div class="page-title-wrapper">

                            <div class="page-title-heading">

                                <div class="page-title-icon">

                                    <i class="pe-7s-box2 icon-gradient bg-mean-fruit">

                                    </i>

                                </div>

                                <div><?php echo $title; ?>

                                    <div class="page-title-subheading"><?php echo $sub_title; ?>

                                    </div>

                                </div>

                            </div>

                            <div class="page-title-actions">

                                <button type="button" data-toggle="tooltip" data-placement="bottom" class="btn-shadow mr-3 btn btn-dark">

                                    <i class="fa fa-star"></i>

                                </button>

                            </div>

                        </div>

                    </div>
<?php 
while ($row = $result1->fetch_assoc()) {

?>					
		<!-- Starting form -->
		<div class="main-card mb-3 card">
                                    <div class="card-body">
                                        <h3 class="card-title">التعديل على البيانات الاساسية للأقمشة</h3>
                                        <div class="form-row">
					<!-- خانة اسم القماش -->
					                                            <div class="col-12">
                                                <label>إسم القماش</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend"><i class="fa fa-lightbulb-o" aria-hidden="true"></i></i></i></span>
                                                    </div>
<input type="text" class="form-control com_name fabname" value="<?php echo $row['fabname']; ?>" required>
                                                </div>
                                            </div>
					<!-- نهاية خانة اسم القماش -->
<?php } ?>
                                            <div class="col">
                                                <label>التوصيف التجارى</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>
                                                    <select class="form-control s-des" required>
                                                        
                                                        <?php
                                                       // $result = $conn->query("SELECT * FROM commercial_description");
                                                        while ($row = $result2->fetch_assoc()) {
                                                            echo '<option selected disabled value="' . $row['commName'] . '">' . $row['commName'] . '</option>';
                                                                  }
																  while ($row = $result3->fetch_assoc())
																  {
																	 echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>'; 
																  } 
                                                        ?>
                                                    </select>
                                                    <div class="invalid-feedback">
                                                        يرجى تحديد
                                                    </div>
                                                </div>
                                            </div>
                                            <div class="col">
                                                <label>إسم قماش التركيب النسجي</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="text" class="form-control fabric-auto" value="قم بتحديد التوصيف التجارى" readonly required>
                                                </div>
                                            </div>
                                            <div class="col-12">
                                                <label>تجهيز القماش</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">ِTEXT</span>
                                                    </div>
                                                    <input type="text" class="form-control ready">
                                                </div>
                                            </div>
                                            <div class="col-12">
                                                <label>صورة القماش</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">IMAGE</span>
                                                    </div>
                                                    <input type="file" class="form-control cloth-image" required>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
								
			<!-- التعديل على كارت الخواص -->
			
			 <div class="main-card mb-3 card">
                                    <div class="card-body">
                                        <h3 class="card-title">التعديل على خواص القماش</h3>
                                        <div class="form-row">
                                            <div class="col-12">
                                                <label>وزن المتر المربع بالجرام</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">NUM</span>
                                                    </div>
                                                    <input type="text" class="form-control gMeterW" required>
                                                </div>
                                            </div>
                                            <div class="col-12">
                                                <label>نسبة الإنكماش بالعرض</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">NUM</span>
                                                    </div>
                                                    <input type="text" class="form-control cShrink">
                                                </div>
                                            </div>
                                            <div class="col-12">
                                                <label>نسبة الإنكماش بالطول</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">NUM</span>
                                                    </div>
                                                    <input type="text" class="form-control lShrink">
                                                </div>
                                            </div>
                                            <div class="col-12">
                                                <label>عرض الثوب بالمتر</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">NUM</span>
                                                    </div>
                                                    <input type="text" class="form-control dressW" pattern="^\d*(\.\d{0,2})?$" required>
                                                </div>
                                            </div>
                                            <div class="col-12">
                                                <label>وزن المتر الطولي بالجرام</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">NUM</span>
                                                    </div>
                                                    <input type="text" class="form-control Cweight" readonly required>
                                                </div>
                                            </div>
                                            <div class="col-12">
                                                <label>عدد الامتار لكل كيلو جرام</label>
                                                <div class="input-group">
                                                    <div class="input-group-prepend">
                                                        <span class="input-group-text" id="inputGroupPrepend">NUM</span>
                                                    </div>
                                                    <input type="text" class="form-control meterPerKG" readonly required>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
								
		<!-- زر الحفظ -->
		
		                                <div class="main-card mb-3 card">
                                    <div class="card-body">
                                        <div class="form-row">
                                          
											<button type="button" class="btn btn-primary btn-lg btn-block" type="submit">تحديث البيانات</button>

                                        </div>
                                    </div>
                                </div>
					
					
					
 <?php 
		//Modal color piker
		include("includes/commonfabric/color_piker_modal.html");
		include("includes/footer.php");
require("js/commonfabric-js.php");
		?>
    </div>
    <?php

	include("includes/js.php");

انا ما زلت مبتدئ و امامي الكثير ان شاء الله لاتعلمه

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

  • 0
بتاريخ 50 دقائق مضت قال محمد المصري5:

و ارجو ان لا تحرمني رأيك في تنظيف هذا الكود فضلا

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

لاحظ أنك تقوم ببداية دور ثم تقوم بإنهاءه قبل إغلاق الوسوم داخل الدور :

        <?php 
        while ($row = $result1->fetch_assoc()) { # بداية الدور
        ?>					
		<!-- Starting form -->
		<div class="main-card mb-3 card">
            <div class="card-body">
                <h3 class="card-title"></h3>
                
                <div class="form-row">
                  
					<!-- خانة اسم القماش -->
					
					<!-- نهاية خانة اسم القماش -->
        
                    <?php } # نهاية الدور ?>
                  
                    <div class="col">				
                    </div>

                    <div class="col">
                    </div>

                    <div class="col-12">
                    </div>

                    <div class="col-12">
                    </div>

                </div>
            </div>
        </div>
					

سيبب لك هذا مشاكل عرض أو تداخلات في حالة عدم إرجاع الإستعلام لأي نتائج من قاعدة البيانات . 

عوضا عن هذا يمكنك عممل ذلك على هذا النحو :

<?php 
  while ($row = $result1->fetch_assoc()) { # بداية الدور
?>					
		<!-- Starting form -->
		<div class="main-card mb-3 card">
            <div class="card-body">
                <h3 class="card-title"></h3>
                
                <div class="form-row">
                  
					<!-- خانة اسم القماش -->
					
					<!-- نهاية خانة اسم القماش -->
                  
                    <div class="col">				
                    </div>

                    <div class="col">
                    </div>

                    <div class="col-12">
                    </div>

                    <div class="col-12">
                    </div>

                </div>
            </div>
        </div>
					
<?php } # نهاية الدور ?>

ثم سيسهل التحكم في المكون بالصف main-card و تكراره كذا مرة . 

كما أنه يمكن كتابة هاته الأسطر :

<select class="form-control s-des" required>
       <?php
            while ($row = $result2->fetch_assoc()) {
                echo '<option selected disabled value="' . $row['commName'] . '">' . $row['commName'] . '</option>';
            }
            while ($row = $result3->fetch_assoc())
			{
			    echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>'; 
			} 
       ?>
</select>

على نحو أفضل : 

<select class="form-control s-des" required>
       <?php
            while ($row = $result2->fetch_assoc()) { ?>
                <option selected disabled value="<?php echo $row['commName']; ?>">
                  <?php echo $row['commName']; ?>
                </option>
            <?php } ?>
  
            <?php while ($row = $result3->fetch_assoc()) { ?>
			    <option value="<?php echo $row['id'] ?>">
                  <?php echo $row['name']; ?> 
                </option> 
			<?php }; ?> 
       ?>
</select>

(يمكنك إنشاء دالة عامة بسيطة تحمل اسما مختصرا (ليكن __ مثلا ) تقوم بطباعة البارمتر الممرر عبرها عوض كتابة echo كل مرة ) .

لاحظ أيضا أن لديك وسم مفتوح في الأسطر الأخيرة : 

<div class="main-card mb-3 card">
      <div class="card-body">
      </div>	

	  <!-- زر الحفظ -->
	  <div class="main-card mb-3 card">         
      </div>

<!-- هنا -->

و هنا أيضا : 

<div class="app-container app-theme-white body-tabs-shadow fixed-sidebar fixed-header">

        <div class="app-main">

            <div class="app-main__outer">

                <div class="app-main__inner">

                    <div class="app-page-title">

                    </div>
                  
                <!-- هنا -->
                  
           <!-- هنا -->    
                  
       <!-- هنا -->      
                  
<!-- هنا -->

و قد لحظت نفس هذا الخطأ في أسئلتك السابقة أيضا , تأكد أن تقوم بإصلاحه في باقي الصفحات . 

كما أنه يمكنك التخلص من وسم الإغلاق هذا ﻷنه غير واضح و قد لا تتذكر لماذا وضعته بعد مدة : 

<?php 
    // Modal color piker
	include("includes/commonfabric/color_piker_modal.html");
	include("includes/footer.php");
    require("js/commonfabric-js.php");
?>
    </div>

<?php
	include("includes/js.php");

بالتوفيق .

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...