Создание таблицы для банеров

CREATE TABLE `kta22v`.`baners` ( `id` INT NOT NULL AUTO_INCREMENT , `lang` VARCHAR(2) NOT NULL , `photo` TINYTEXT NOT NULL , `listOrder` TINYINT NOT NULL , `dateStart` DATETIME NOT NULL , `dateEnd` DATETIME NOT NULL , `title` TINYTEXT NOT NULL , `lead` TEXT NOT NULL , `link` TINYTEXT NOT NULL , `clicks` INT NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

Пример добавления информации в таблицу

INSERT INTO `baners` (`id`, `lang`, `photo`, `listOrder`, `dateStart`, `dateEnd`, `title`, `lead`, `link`, `clicks`) VALUES (NULL, 'ru', '1.png', '1', '2023-10-28 10:27:42', '2023-10-31 10:27:42', 'Новые предложения', 'Только для тех, кто приобрел два пуховика есть возможность приобрести третий', '?ln=ru&page=product&id=132456789', '0')



INSERT INTO `baners` (`id`, `lang`, `photo`, `listOrder`, `dateStart`, `dateEnd`, `title`, `lead`, `link`, `clicks`) VALUES (NULL, 'ru', '2.webp', '2', '2023-10-28 10:27:42', '2023-10-31 10:27:42', 'Старые предложения', '10 первых посетителей получат в подарок белые тапочки', '?ln=ru&page=product&id=65441223', '0'), (NULL, 'et', '2.webp', '2', '2023-10-28 10:27:42', '2023-10-31 10:27:42', 'Vanad pakkumised', 'Esimesed 10 külastajat saavad kingituseks valged sussid', '?ln=et&page=product&id=65441223', '0'), (NULL, 'en', '2.webp', '2', '2023-10-28 10:27:42', '2023-10-31 10:27:42', 'Old offer', 'The first 10 visitors will receive white slippers as a gift', '?ln=en&page=product&id=65441223', '0')

Код файла banners2.php

<?php
$banList=getLangList($ssylka,'baners', "lang='".$_GET['ln']."'",'listOrder');

foreach($banList as $banNum => $banInfo){
echo '';
}

?>

Начала шаблона баннера2

<div id="carouselExampleCaptions" class="carousel slide">
<div class="carousel-indicators">
  
 <!--//   тут будут кнопки перемотки к каждому банеру, которые в центре   //-->
  
</div>
<div class="carousel-inner"> 
  
<!--//  тут будут блоки каждого отдельного банера с картинкой и текстом   //-->  
  

</div>
  <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Предыдущий</span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Следующий</span>
  </button>
</div>

Следующая версия

<?php
$banList=getLangList($ssylka,'baners', "lang='".$_GET['ln']."'",'listOrder');
?>

<div id="carouselExampleCaptions" class="carousel slide">
<div class="carousel-indicators">
  
 <!--//   тут будут кнопки перемотки к каждому банеру, которые в центре   //-->
<?php  
foreach($banList as $banNum => $banInfo){
 echo '';
}  
?>  
</div>
<div class="carousel-inner"> 
  
<!--//  тут будут блоки каждого отдельного банера с картинкой и текстом   //-->  
 <?php  
foreach($banList as $banNum => $banInfo){
 echo '';
}  
?>  

</div>
  <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Предыдущий</span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Следующий</span>
  </button>
</div>

Следующий этап

<?php
$banList=getLangList($ssylka,'baners', "lang='".$_GET['ln']."'",'listOrder');
?>

<div id="carouselExampleCaptions" class="carousel slide">
<div class="carousel-indicators">
  
 <!--//   тут будут кнопки перемотки к каждому банеру, которые в центре   //-->
<?php 
$dobavka=' class="active" aria-current="true" '; 
foreach($banList as $banNum => $banInfo){
 echo '<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="'.$banNum.'" '.$dobavka.' aria-label="Slide '.($banNum+1).'"></button>';
 $dobavka='';
}  
?>  
</div>
<div class="carousel-inner"> 
  
<!--//  тут будут блоки каждого отдельного банера с картинкой и текстом   //-->  
 <?php  
foreach($banList as $banNum => $banInfo){
 echo '';
}  
?>  

</div>
  <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Предыдущий</span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Следующий</span>
  </button>
</div>

Финальный код

<?php
$banList=getLangList($ssylka,'baners', "lang='".$_GET['ln']."'",'listOrder');
?>

<div id="carouselExampleCaptions" class="carousel slide">
<div class="carousel-indicators">
  
 <!--//   тут будут кнопки перемотки к каждому банеру, которые в центре   //-->
<?php 
$dobavka=' class="active" aria-current="true" '; 
foreach($banList as $banNum => $banInfo){
 echo '<button type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide-to="'.$banNum.'" '.$dobavka.' aria-label="Slide '.($banNum+1).'"></button>';
 $dobavka='';
}  
?>  
</div>
<div class="carousel-inner"> 
  
<!--//  тут будут блоки каждого отдельного банера с картинкой и текстом   //-->  
 <?php  
 $dobavka=' active';
foreach($banList as $banNum => $banInfo){
 echo '<div class="carousel-item'.$dobavka.'">
      <img src="banner/'.$banInfo['photo'].'" class="d-block w-100" alt="'.$banInfo['title'].'">
      <div class="carousel-caption d-none d-md-block">
        <h5>'.$banInfo['title'].'</h5>
        <p>'.$banInfo['lead'].'</p></div></div>';
 $dobavka='';}  
?>  

</div>
  <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Предыдущий</span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleCaptions" data-bs-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Следующий</span>
  </button>
</div>

В блоке НАВИ добавка

      <div class="navbar-nav ms-auto mb-2 mb-lg-0">
      <?php
      $langs=getLangList($ssylka,'languages');
      foreach($langs as $langsK => $langsV){
      				echo '<li>'.$langsV['title'].'</li>';
      }      
      ?>
      </div>
Замена на:

echo '<li><a href="?ln='.$langsV['code'].'">'.$langsV['title'].'</a></li>';

Новое содержимое престарта

<?php
$langList=getLangList($ssylka,'languages','','listOrder');

if(empty($_GET['ln'])){
		$_GET['ln']=$langList[0]['code'];
}else{
$langTest=false;
		foreach($langList as $langN => $langInfo){
	 		if($_GET['ln']==$langInfo['code']){$langTest=true;}
		}
if($langTest==false){
			$_GET['ln']=$langList[0]['code'];
}			
}

?>