Исключение повторение переменных PHP

202
12 апреля 2017, 16:15

Когда я беру рандомные значения из БД, они часто повторяются. Чтобы это не происходило, я попытался заново брать значение, но это не помогает.

<?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;}
Answer 1

Использовать запрос с параметром DISTINCT:

SELECT DISTINCT * FROM `words` ORDER BY RAND()

Можно так же сгруппировать по конкретному столбцу:

SELECT `word` FROM `words` GROUP BY `word` ORDER BY RAND()
Answer 2

Попробуйте поиграться с 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, а то вы похоже всю таблицу достаёте.

READ ALSO
Неправильно работает extends в PHP 7?

Неправильно работает extends в PHP 7?

Недавно перешел на PHP7, в целом миграция прошла хорошо, за исключением того, что PHP не хочет видеть класс-родитель у потомков (ООП)

206
Чтение файла-устройства

Чтение файла-устройства

Возникла задача прочитать файл-устройствоДелаю так:

198
Программно изменить реестр через WinApi

Программно изменить реестр через WinApi

Здравствуйте! Скажу сразу, это проблемная для меня темаВ ветви HKEY_CURRENT_USER нужно изменить значение ColorizationGlassReflectionIntensity, находящееся в Software\\Microsoft\\Windows\\DWM

292
Можно ли как-то изменить степень размытия фона эффекта AeroGlass через DWM API?

Можно ли как-то изменить степень размытия фона эффекта AeroGlass через DWM API?

Можно ли как-то изменить степень размытия фона эффекта AeroGlass через DWM API?

283