Каждый X результат отличается от выборки из базы данных MySQL

0

У меня есть простой цикл php foreach, который извлекает некоторые данные из базы данных MySQL

$result = $pdo->prepare( "SELECT * FROM table ORDER BY RAND() LIMIT 30");
$result->execute();
foreach ($result as $row)
{
    echo 'data';                            
}

Как вы можете видеть, есть LIMIT 30. Можно ли вставлять разные данные на каждый 10-й результат. Data which is not from database. Это статические данные и не будет изменчивым. Я имею в виду что-то вроде

if ( $row=10 )
{
   echo $row['name'];
}
else
{
   echo '<div> some static text not from database </div>';
}
  • 0
    Вы хотите напечатать эти статические данные вместо строки из базы данных (т.е. всего 30 строк) или в дополнение к ней (то есть всего 33 строки)?
  • 0
    Всего 33 строки. 10 строк из базы данных, 1 статическая, 10 из дБ, 1 статическая, 10 дБ, 1 статическая: 10-1-10-1-10-1
Показать ещё 2 комментария
Теги:

2 ответа

0
Лучший ответ
$counter = 0; //This is the counter which we will use to count row numbers.
$result = $pdo->prepare( "SELECT * FROM table ORDER BY RAND() LIMIT 30");
$result->execute();
foreach ($result as $row)
{
    $counter++; //We are incrementing the counter.
    echo $row['name'];
    //If we are at a row which is multiple of 10, we output a static value.
    if($counter % 10 == 0) 
        echo 'Hello World!';               
}
  • 0
    Спасибо за ответ, это именно то, что мне нужно.
1
$counter=0;
foreach ($result as $row)
{
    $counter++;
    if($counter %10==0){} //10th result
    else{} //not 10th result
}
  • 0
    OP хочет вывести все строки, извлеченные из таблицы, и дополнительные статические значения для каждых 10 строк. Ваш ответ избегает выводить результаты в 10-й строке.
  • 0
    Да, это не возвращает то, что мне нужно.

Ещё вопросы

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