Когда я беру рандомные значения из БД, они часто повторяются. Чтобы это не происходило, я попытался заново брать значение, но это не помогает.
<?php
$connection = mysqli_connect('127.0.0.1', 'root','','engtest');
$result = array( $result_transfer1,$result_transfer2, $result_transfer3, $result_transfer4);
$result_word;
$transfer = array( $transfer1 , $transfer2,$transfer3, $transfer4);
$result[0] = mysqli_query($connection, "SELECT * FROM words ORDER BY RAND()");
$transfer[0] = (mysqli_fetch_assoc($result[0]));
switch ($_REQUEST['action']) {
case 'button1':
if($transfer[0] == $transfer[1] or $transfer[0] == $transfer[3] or $transfer[0] == $transfer[2]){
unset( $result[0]);
$result[0] = mysqli_query($connection, "SELECT * FROM words ORDER BY RAND()");
$transfer[0] = (mysqli_fetch_assoc($result[0]));
echo "($('.answer1').html('" . $transfer[0]['transfer'] ."');";}
else{ echo "$('.answer1').html('" . $transfer[0]['transfer'] ."');";};
break;}
Использовать запрос с параметром DISTINCT:
SELECT DISTINCT * FROM `words` ORDER BY RAND()
Можно так же сгруппировать по конкретному столбцу:
SELECT `word` FROM `words` GROUP BY `word` ORDER BY RAND()
Попробуйте поиграться с GROUP BY
$result[0] = mysqli_query($connection, "SELECT * FROM `words` GROUP BY `id` ORDER BY RAND()");
Первым делом убедитесь, что в вашей таблице не повторяются сами записи, если надо чтобы уникальным было какое-то конкретное поле, попробуйте GROUP BY field_that_must_be_once и желательно я думаю ограничить выбор через LIMIT или какие-то критерии HAVING, а то вы похоже всю таблицу достаёте.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости