Aleatorios sin repetir

Iniciado por seon22break, Septiembre 18, 2018, 05:55:18 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Septiembre 18, 2018, 05:55:18 AM Ultima modificación: Abril 15, 2021, 06:05:55 AM por blackdrake
Me encuentro realizando un pequeño juego que consiste en lo siguiente: Tengo dos noticias, tienes que elegir cual es falsa de las dos. Todo esto lo estoy realizando con php y diseñando el front-end en bootstrap. Ahora viene mi duda. Extraigo las dos noticias una es verdadera y la otra es falsa, ahora bien quiero que nunca tengan una posición fija sino que aleatoriamente se vayan colocando en un lado y en el otro. Os dejo el codigo para que veais a que me refiero.

Código: php
function elegir(){

//En esta función extraigo las dos noticias una verdadera y otra falsa
  global $conexion;

  $verdaderas = $conexion -> query("select titulo from falsas where op like ('T') order by rand() limit 1");
  $ver = $verdaderas -> fetch_assoc();
  $GLOBALS['ver']=$ver["titulo"];

  $falsas = $conexion -> query("select titulo from falsas where op like ('F') order by rand() limit 1");
  $fal = $falsas ->fetch_assoc();
  $GLOBALS['fal']=$fal["titulo"];

}

elegir();

function mostrar(){
//Esta funcion es a la cual llamo en el html para que muestre si es la verdadera o la falsa
  $aleatorio=rand(1,2);

  if($aleatorio==1){

    positionA($GLOBALS['ver']);
    //positionB($GLOBALS['fal']);

  }

  if ($aleatorio==2){

    //positionB($GLOBALS['ver']);
    positionB($GLOBALS['fal']);
  }

}


  function positionA($var){
   
     echo $var;
 
  }

  function positionB($var){
   
    echo $var;
  }


No lo juzguéis mucho jaja estoy empezando ahora a programar. :)) Cualquier aportación sería de gran ayuda, ya sea para optimizar el código como cualquier sugerencia

Que tal, puedes generar un entero cada que envias las noticias al front.

Por ejemplo si tus noticias tienen esta estructura:

Código: json

{
   "id":1,
    ...
}


Puedes agregar un atributo, utilizando una funcion que genere dos numeros al azar, por ejemplo: 1 y 2; donde 1 => Izquierda y 2 => Derecha:
El codigo para generar el numero random seria el siguiente:

Código: php

function generateRandom(){
      $number = random_int(1, 2);
      return $number;
}


Para asignar a un atributo seria con el siguiente codigo:

Código: php

$news[$index]['align'] = generateRandom();


Ya en la vista solo con el atributo align definirias el lado en que aparece la noticia. Saludos.

Creo que la pregunta iba sobre el random en la querry y sacar las preguntas en las siguientes páginas sin que se repitan.

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.