Поэтому я пытаюсь выяснить, как это сделать с 1 запросом, если это возможно. Вот что я имею с несколькими запросами
$file_url = 'http://'.$cms.'/filemanager/gallery'; $link_url = '/our-process/gallery/'; include 'inc/config.php'; function gallerySafeName($var){ $var = strtolower(preg_replace('([^a-zA-Z0-9_])','-',$var)); return $var; } $galleryimages = array(); $sql = "SELECT * FROM `cms_gallery_categories` ORDER BY RAND() LIMIT 3"; $result = mysqli_query($con,$sql); while ($row = mysqli_fetch_array($result)){ $sql1 = "SELECT * FROM `cms_gallery_images` WHERE `image_id` = ".$row['category_image_id']; $result1 = mysqli_query($con,$sql1); while ($row1 = mysqli_fetch_array($result1)){ $sql2 = "SELECT * FROM `cms_gallery` WHERE `gallery_id` = ".$row1['gallery_id']; $result2 = mysqli_query($con,$sql2); while ($row2 = mysqli_fetch_array($result2)){ print '<li> <a href="'.$link_url.$row['category_name'].'/'.$row2['gallery_name'].'/'.gallerySafeName($row1['image_caption']).'/"> <img width="210" height="133" border="0" src="'.$file_url.'/'.$row['category_name'].'/'.$row2['gallery_name'].'/'.$row1['image_name'].'" /> </a> </li>'; } } }
Я пытаюсь получить 3 случайные записи из категории галереи и изображения, назначенного для представления этой категории. Затем получите имя галереи, а затем имя изображения, чтобы сформировать img src и ссылку. Моя структура таблицы выглядит следующим образом
-cms_gallery_categories category_id category_title category_name category_image_id -cms_gallery gallery_id gallery_title gallery_name category_id -cms_gallery_images image_id image_name image_caption gallery_id
Изображения принадлежат галереям, а галереи относятся к категориям