ارجوكم عدلوا لي هذا الكود البرمجي

هذا الكود يقوم بعرض جدول واحد فقط وهو car

انا لدي عدة جداول فاريد وضعهم مع car

مثل جدول alic,wod,honey وغيره من الجداول

  <?php

   $category_name = $_GET['category'];

   $select_products = $conn->prepare("SELECT * FROM `car` WHERE category = ? ORDER BY id DESC");

   $select_products->execute([$category_name]);

   if($select_products->rowCount() > 0){

     while($fetch_products = $select_products->fetch(PDO::FETCH_ASSOC)){ 

  ?>

  <form action="" class="box" method="POST">

   <div class="price">السعر:<span><?= $fetch_products['price']; ?></span></div>

         <div class="moheeb1"><?= $fetch_products['date']; ?></div>

   <a href="viewpage.php?pid=<?= $fetch_products['id']; ?>" >

   <img src="uploaded_img/<?= $fetch_products['image'];?>" style="max-width:30%;height: auto;border-radius:20px;width:50;height:50;" alt=""></a>

    <a href="viewpage.php?pid=<?= $fetch_products['id'];?>"><div class="moheeb2"><?= $fetch_products['name']; ?></div></a>

   <input type="hidden" name="pid" value="<?= $fetch_products['id']; ?>">

   <input type="hidden" name="p_name" value="<?= $fetch_products['name']; ?>">

   <input type="hidden" name="p_price" value="<?= $fetch_products['price']; ?>">

   <input type="hidden" name="p_image" value="<?= $fetch_products['image']; ?>">

  </form>

  <?php

     }

   }else{

     echo '<p class="empty">ليس هناك إعلانات</p>';

   }

  ?>

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

مرحبا أخي الغالى .

يمكنك ايضا هنا استخدام UNION ولكن تذكر ان الترتيب سيكون على حسب ترتيب الجداول فى الكتابة وايضا قم بالتاكد ان جميع الجداول لها نفس ترتيب وعدد الاعمدة والا لا تستخدم SELECT * ولكن استخدم الاعمدة اللتى تريدها فقط

وايضا لا تنسى تمرير المتغيرات على حسب الجدول فى الدالة excute.

ستجدنى وضعت رقم 4 فى الدالة array_fill لانى مستخدم 4 جداول اذا اردت استخدام اكثر او اقل لا تنسى تغير الرقم 4.

فيصبح الكود كالاتي

$select_products = $conn->prepare("
SELECT * FROM `car` WHERE category = ?
ORDER BY id DESC
UNION 
SELECT * FROM `alic` WHERE category = ?
ORDER BY id DESC
UNION
SELECT * FROM `wod` WHERE category = ?
ORDER BY id DESC
UNION
SELECT * FROM `honey` WHERE category = ?
ORDER BY id DESC
 ");
$select_products->execute(array_fill(0, 4,$category_name));



استخدم استعلام JOIN للدمج بين نتائج جداول مختلفة بناءا على شرط معين، إليك المثال:

<?php
$category_name = $_GET['category'];


// استعلام SQL يقوم بدمج البيانات من الجدولين
$select_products = $conn->prepare("SELECT car.*, other_table.* FROM car JOIN other_table ON car.common_column = other_table.common_column WHERE car.category = ? ORDER BY car.id DESC");


$select_products->execute([$category_name]);


if($select_products->rowCount() > 0){
    while($fetch_products = $select_products->fetch(PDO::FETCH_ASSOC)){ 
?>
    <form action="" class="box" method="POST">
        <!-- استخدام $fetch_products['other_column'] للوصول إلى البيانات من الجدول الآخر -->
        <div class="price">السعر:<span><?= $fetch_products['price']; ?></span></div>
        <div class="moheeb1"><?= $fetch_products['date']; ?></div>
        <a href="viewpage.php?pid=<?= $fetch_products['id']; ?>" >
            <img src="uploaded_img/<?= $fetch_products['image'];?>" style="max-width:30%;height: auto;border-radius:20px;width:50;height:50;" alt="">
        </a>
        <a href="viewpage.php?pid=<?= $fetch_products['id'];?>"><div class="moheeb2"><?= $fetch_products['name']; ?></div></a>
        <input type="hidden" name="pid" value="<?= $fetch_products['id']; ?>">
        <input type="hidden" name="p_name" value="<?= $fetch_products['name']; ?>">
        <input type="hidden" name="p_price" value="<?= $fetch_products['price']; ?>">
        <input type="hidden" name="p_image" value="<?= $fetch_products['image']; ?>">
    </form>
<?php
    }
} else {
    echo '<p class="empty">ليس هناك إعلانات</p>';
}
?>

استبدل common_column بالعمود المشترك بين الجدولين المراد الاستعلام منهما وسيظهر لك الناتج.