Aleatorios sin repetir

  • 2 Respuestas
  • 3009 Vistas

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

Desconectado seon22break

  • *
  • Underc0der
  • Mensajes: 17
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Aleatorios sin repetir

  • en: Septiembre 18, 2018, 05:55:18 am
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) You are not allowed to view links. Register or Login
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
« Última modificación: Abril 15, 2021, 06:05:55 am por blackdrake »

Desconectado C0deM4n

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Re: Aleatorios sin repetir

  • en: Abril 13, 2021, 08:45:45 pm
Que tal, puedes generar un entero cada que envias las noticias al front.

Por ejemplo si tus noticias tienen esta estructura:

Código: (json) You are not allowed to view links. Register or Login
{
   "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) You are not allowed to view links. Register or Login
function generateRandom(){
      $number = random_int(1, 2);
      return $number;
}

Para asignar a un atributo seria con el siguiente codigo:

Código: (php) You are not allowed to view links. Register or Login
$news[$index]['align'] = generateRandom();

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

Desconectado animanegra

  • *
  • Moderator
  • Mensajes: 335
  • Actividad:
    0%
  • Country: 00
  • Reputación 14
    • Ver Perfil
    • Basura a ver si google lo indexa

Re: Aleatorios sin repetir

  • en: Abril 14, 2021, 05:19:14 am
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.