Как я могу делать для того, чтобы переменные оказались случайными?

В хороший день, меня произвело сомнение в момент реализации моего кода, у меня есть следующий код, но в момент, который они появляются у меня на экране, я хотел бы, чтобы у меня вышли выборы случайного способа, или же, что не вышел у меня 1,2,3,4 но меня вытекут 2,3,1,4 или любого другого способа, но без команды

        <?php
        include '../conn.php'; 
          $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
          mysqli_set_charset($conn,"utf8");

          $sn=@$_GET['n'];
          $quiz=@$_GET['quiz'];

          if ($sn === '1') {
             $id_Resultado = uniqid();
          }else{
            $id_Resultado = @$_GET['idRes'];
          }

          $sql="SELECT * FROM preguntas_comp_teo WHERE COMP_ID='$quiz' AND NO_PREGUNTA=$sn";
          //$sql="SELECT count(*) FROM preguntas_comp_teo WHERE COMP_ID='$quiz' AND NO_PREGUNTA=$sn";
          echo '<div class="panel" style="margin:5%">';
          //echo $sql;
          $result = $conn->query($sql);
          $c=1;
          while($row = $result->fetch_assoc()){
                $pregunta = $row['PREGUNTA'];
                $id_pregunta = $row['PREG_ID'];
                $op1 = $row['OP1'];
                $op2 = $row['OP2'];
                $op3 = $row['OP3'];
                $respuesta = $row['OP4'];

                  echo '<form action="Cactualiza.php?q=1&quiz='.$quiz.'&n='.$sn.'&idRes='.$id_Resultado.'&preg='.$pregunta.'&skip=no" method="POST" class="form-horizontal"><br />';
                  echo '<b>Pregunta &nbsp;'.$sn.'&nbsp;:<br />'.$pregunta.'</b><br /><br />';

                  if ($op1 !== "") {                  
                    if ($op1 === "PREGUNTA") {                      
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="0" required>'.$op1.'<br /><br />';
                    }
                  }if ($op2 !== "") {
                    if ($op2 === "PREGUNTA") {
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="0" required>'.$op2.'<br /><br />';
                    }
                  }if ($op3 !== "") {
                    if ($op3 === "PREGUNTA") {
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="0" required>'.$op3.'<br /><br />';
                    }
                  }if ($respuesta !== "") {
                    if ($respuesta === "PREGUNTA") {
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="1" required>'.$respuesta.'<br /><br />';
                    }
                  }
                  echo'<br /><button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span>&nbsp;Guardar</button></form></div>';
                }

Он показывает их В МОМЕНТ которого он печатает мне результаты, мне способа, в как они сохраняли в системе. Я не знаю, состояло ли самое простое в том, чтобы помещать это в цикл или не, если бы была какая-то переменная для того, чтобы он показал мне выборы случайного способа.

0
задан 04.11.2019, 22:41
2 ответа

Новый ответ
Видя медлил с тем, чтобы выполнять много я исследовал немного и нашел одну funciГіn, что делает беспорядок array. shuffle($array);

Пример

$array_respuestas=array($resp1,$resp2,$resp3);
shuffle($array_respuestas);

DocumentaciГіn: PHP.net> shuffle



Антигуа ответ:

ExplicaciГіn:
после того, как имеет в BD возможные ответы внутри той же таблицы, (и не в другой таблице, соединенный) не могут использовать ORDER BY RAND() и из-за этого нужно делать ее selecciГіn в PHP
Они soluciГіn, который вижу я serГ, - чтобы создавать array ответов и потом делать один rand(0,count($array_respuestas)) array ответов. Такой
Как rand() не обнаруживает, что ответ estГЎ или помещенная мы, должно быть, сделаем другим array с индексом ответов или постановки, чтобы обнаруживать, если estГЎ постановка или нет.

Пример

.
.
.
$array_respuestas=array($resp1,$resp2,$resp3);
$respuestas_puestas=array();
$array_desordenado=array();
//Utilizamos el bucle for para recoger el indice
for($i=0;$i<count($array_respuestas)-1;$i++){
    $ya_puesto=false;
    do{
        $ran=rand(0,count($array_respuestas));
        if(in_array($ran,$respuestas_puestas)){
            $ya_puesto=true;
        }else{
            //Añadimos al array el elemento actual
            $respuestas_puestas[]=$ran;
            $array_desordenado[]=$array_respuestas[$ran];
        }
    }while($ya_puesto);
}
.
.
.

Таким образом у тебя есть 3 arrays.

  1. Array оригинал array_respuestas
  2. Array элементов или мест respuestas_puestas (ComprobaciГіn он помещает)
  3. Array неряшливый оригинал array_desordenado
0
ответ дан 01.12.2019, 12:48
  • 1
    Notice: Undefined офсет: 4 in C:\xampp\htdocs\DECO\Competencias\evalua.php он-лайн 415 производит мне эту ошибку и будьте другим, когда он вводит впервые Фатальную ошибку: Maximum execution украл of 30 seconds exceeded in C:\xampp\htdocs\DECO\Competencias\evalua.php он-лайн 409 – user147798 05.11.2019, 00:09
  • 2
    Я нашел одну лучше solució n я помещаю ее тебе – Jose 05.11.2019, 00:39
**ahorita estoy haciendo la prueba para ver como saldria el rand pero en los que he hecho se me va la op4 la cual es la respuesta correcta**   
     <?php
        include '../conn.php'; 
          $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
          mysqli_set_charset($conn,"utf8");

          $sn=@[110]GET['n'];
          $quiz=@[110]GET['quiz'];

          if ($sn === '1') {
             $id_Resultado = uniqid();
          }else{
            $id_Resultado = @[110]GET['idRes'];
          }

          $sql="SELECT * FROM preguntas_comp_teo WHERE COMP_ID='$quiz' AND NO_PREGUNTA=$sn";
          //$sql="SELECT count(*) FROM preguntas_comp_teo WHERE COMP_ID='$quiz' AND NO_PREGUNTA=$sn";
          echo '<div class="panel" style="margin:5%">';
          //echo $sql;
          $result = $conn->query($sql);
          $c=1;
          while($row = $result->fetch_assoc()){
                $pregunta = $row['PREGUNTA'];
                $id_pregunta = $row['PREG_ID'];
                $op1 = $row['OP1'];
                $op2 = $row['OP2'];
                $op3 = $row['OP3'];
                $respuesta = $row['OP4'];
                $array_respuestas=array($op1, $op2, $op3, $respuesta);

                for ($i=0; $i<5; $i++) {
                  echo rand(0,count($array_respuestas));
                }

                  echo '<form action="Cactualiza.php?q=1&quiz='.$quiz.'&n='.$sn.'&idRes='.$id_Resultado.'&preg='.$pregunta.'&skip=no" method="POST" class="form-horizontal"><br />';
                  echo '<b>Pregunta &nbsp;'.$sn.'&nbsp;:<br />'.$pregunta.'</b><br /><br />';

                  if ($op1 !== "") {                  
                    if ($op1 === "PREGUNTA") {                      
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="0" required>'.$op1.'<br /><br />';
                    }
                  }if ($op2 !== "") {
                    if ($op2 === "PREGUNTA") {
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="0" required>'.$op2.'<br /><br />';
                    }
                  }if ($op3 !== "") {
                    if ($op3 === "PREGUNTA") {
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="0" required>'.$op3.'<br /><br />';
                    }
                  }if ($respuesta !== "") {
                    if ($respuesta === "PREGUNTA") {
                      echo '<textarea rows="8" cols="8" name="ans" class="form-control" placeholder="Escribe tu respuesta aqui." required></textarea>';
                    }else{
                      echo'<input type="radio" name="ans" value="1" required>'.$respuesta.'<br /><br />';
                    }
                  }
                  echo'<br /><button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span>&nbsp;Guardar</button></form></div>';
                }
0
ответ дан 01.12.2019, 12:48
  • 1
    Не было надо помещать другой ответ, ты hací в понятный и он писал мой собственный ответ – Jose 04.11.2019, 23:45

Теги

Похожие вопросы