Попытка получить несколько случайных результатов, возвращаемых из базы данных MySQL

0

Привет, я потратил большую часть дня на это и обратился к вам в надежде, что кто-то может помочь. Мне нужно создать случайный дисплей 5-10 встроенных вывесок на странице без дублирования. Я могу отобразить видео (но все тот же художник), когда я обновляю его, отображает новый набор видеороликов, но опять же тот же самый художник. Я знаю, что ответ, вероятно, очень прост, но я просто не вижу его.

Любая помощь или указатели будут наиболее оценены.

Исходный PHP-код:

$result = mysql_query("SELECT Youtube FROM artist ORDER BY RAND() LIMIT 5");
$test = mysql_fetch_array($result);
if (!$result) 
{
    die("Error: Data not found..");
}
$Youtube=$test['Youtube'];                  

При выходе:

<div class="ws_images"><ul>
  <iframe width="300" height="300" src="https://www.youtube.com/embed/<?       php echo $Youtube ?>" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
  <iframe width="300" height="300" src="https://www.youtube.com/embed/<?php echo $Youtube ?>" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
  <iframe width="300" height="300" src="https://www.youtube.com/embed/<?php echo $Youtube ?>" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
  <iframe width="300" height="300" src="https://www.youtube.com/embed/<?php echo $Youtube ?>" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
  <iframe width="300" height="300" src="https://www.youtube.com/embed/<?php echo $Youtube ?>" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</ul></div>
  • 0
    Это исходный код: <? Php $ result = mysql_query ("SELECT <? Php $ result = mysql_query (" SELECT Youtube ОТ исполнителя ORDER BY RAND () LIMIT 5 "); $ test = mysql_fetch_array ($ result); if ( ! $ result) {die ("Ошибка: данные не найдены ..");} $ Youtube = $ test ['Youtube'];?>
  • 0
    так они или не разные видео?
Показать ещё 4 комментария
Теги:
random

2 ответа

0
Лучший ответ

Это должно сработать. Я изменил ваш код, а также уменьшил его на цикл while.

<?php 
$mysqli = new mysqli("127.0.0.1", "root", "password", "database name");
$mysqli->set_charset('utf8mb4'); //optional for when you use utf8mb4 charset (recommended) 


$getYouTubeLinks = "SELECT DISTINCT Youtube FROM artist ORDER BY RAND() LIMIT 5";
$getRows = $mysqli->query($getYouTubeLinks);


if($getRows->num_rows > 0) {
  while($row = $getRows->fetch_assoc()) {
    $iframes .= '<iframe width="300" height="300" src="https://www.youtube.com/embed/'.$row['Youtube'].'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><br>';
    }
  }

  ?>

  <div class="ws_images"><ul>
    <?=$iframes;?>
  </ul></div>
  • 0
    Привет, спасибо за ответ, к сожалению, с вашим кодом на месте я получаю: Уведомление: неопределенная переменная: mysqli Неустранимая ошибка: вызов функции-члена query () для нулевой строки, к которой она относится, является этим фрагментом кода. $ getRows = $ mysqli-> query ($ getYouTubeLinks); Действительно ценю помощь
  • 0
    Привет, вы можете показать мне, как вы подключаетесь к своей базе данных без учетных данных? Поскольку переменная $mysqli вероятно, не установлена в вашей среде. Также вам следует переключиться на mysqli. Я выступает за улучшение, и это более безопасно.
Показать ещё 4 комментария
0

$ result = mysql_query ("SELECT DISTINCT Youtube FROM artist ORDER BY RAND() LIMIT 5");

Документация Mysql.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню