PHP - array-rand en base de datos

 
Vista:
sin imagen de perfil
Val: 60
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

array-rand en base de datos

Publicado por carlos (33 intervenciones) el 19/09/2019 19:15:40
Hola, les cuento un poco la idea. Tengo un programa de radio en una emisora y queremos hacer un concurso haciendo uso de la programación. Queremos insertar en una base de datos a los participantes y luego con array_rand ver quienes son los ganadores.
Yo hice lo siguiente, pero como siempre me dio error jajaja.
este es el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$player = $_REQUEST['sorteos'];
    $playerSeguro = mysqli_real_escape_string($conexion,$player);
    $consulta = mysqli_query($conexion,"INSERT INTO radios (participante) VALUES('$playerSeguro')");
$registros=mysqli_query($conexion,"select id,participante
from radios order by id desc") or
die("Problemas en el select:".mysqli_error($conexion));
while ($reg=mysqli_fetch_array($registros))
{
    echo '<strong><em>'.$reg['participante'].'</em></strong>';
    echo '<br>';
}
?>
<a href="sradio.php">Sortear</a>
<h3>Ganadores:</h3>
<?php
$random_keys=array_rand($re['participante'],3);
echo $reg[$random_keys[0]]."<br>";

Y este es el error:

Warning: array_rand() expects parameter 1 to be array, null given

Desde ya gracias a quen pueda ayudarme.
Saludos cordiales.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

array-rand en base de datos

Publicado por Alejandro (840 intervenciones) el 19/09/2019 22:15:21
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Necesitas pasar en los argumentos el array y el numero de elementos a recuperar.
En tu código no se ve la definición de $re
Por favor utiliza la etiqueta code, el botón </>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 60
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

array-rand en base de datos

Publicado por carlos (33 intervenciones) el 20/09/2019 01:14:12
Hola, disculpa, me equivoque cuando puse $re, me comi la "g" jaja.
Aprecio tu ayuda, pero soy novato y me doy idea viendo el código.
Ahora lo deje asi, pero me da el mismo error.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$player = $_REQUEST['sorteos'];
    $playerSeguro = mysqli_real_escape_string($conexion,$player);
    $consulta = mysqli_query($conexion,"INSERT INTO radios (participante) VALUES('$playerSeguro')");
$registros=mysqli_query($conexion,"select id,participante
from radios order by id desc") or
die("Problemas en el select:".mysqli_error($conexion));
while ($reg=mysqli_fetch_array($registros))
{
    echo '<strong><em>'.$reg['participante'].'</em></strong>';
    echo '<br>';
}
?>
<a href="sradio.php">Sortear</a>
<h3>Ganadores:</h3>
<?php
$azar = $reg['participante'];
$random_keys=array_rand($azar,3);
echo $azar[$random_keys[0]]."<br>";


Desde ya gracias por darme una mano.
Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

array-rand en base de datos

Publicado por Alejandro (840 intervenciones) el 20/09/2019 15:55:23
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
$reg['participante']; es una variable correspondiente a un campo de la base de datos y lo que tienes que pasar es una array.
Dentro de while tienes que crear el array
1
$azar[]=$reg;

después puedes usar array_rand, que te devuelve un array con los indices aleatorios obtenidos
1
$random_keys=array_rand($azar,3);

luego iteras el $random_keys para obtener los ganadores.
1
2
3
foreach($random_keys as $key){
   echo $azar[$key]['participante'].'<br />';
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

array-rand en base de datos

Publicado por joel (1269 intervenciones) el 20/09/2019 10:59:35
Carlos, el error te indica que el parámetro que estas pasando no es un array, ya que recibe un valor nulo.
Comprueba el valor del campo: $re['participante'] que sea un array.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 60
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

array-rand en base de datos

Publicado por carlos (33 intervenciones) el 20/09/2019 16:33:06
Hola Alejandro, gracias por tu ayuda. Ahora funciona bien.
Disculpa la molestia, te hago una última consulta; como hago para que se muestre un solo ganador. Ya que al usar el bucle me muestra 3 resultados.
Nuevamente mil gracias.
Saludos cordiales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar