Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/10/2015, 08:11
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Rand() no funciona en el servidor

Por lo pronto, el RAND() que mencionas no es de PHP, sino de MySQL. El comportamiento de ciertas funciones pueden variar en ciertos casos muy particulares.
El hecho de que funcione bien en local pero no en el servidor me llevaría a suponer que tienes Windows en local, y que en el servidor está corriendo sobre Linux; esa es una de las posibilidades dado que es usual que los hosting no usen servidores basados en Windows.
La diferencia en ese punto radica en que ciertas funciones están definidas internamente en MySQL con su nombre en minúsculas, y para Linux, RAND() y rand(), son diferentes (me ha pasado con otras funciones).
Yo encararía dos pruebas:
1) Verificar si realmente está devolviendo algo:
Código PHP:
Ver original
  1. require_once('escriptsphp/conecDB.php');
  2. require_once('escriptsphp/conexion.php');
  3. $dbc=DBConect();
  4. $query="SELECT basico FROM ejercicios ORDER BY rand() Limit 1";
  5.  
  6. $resultado=mysqli_query($dbc, $query) or die ("Error de consulta".mysqli_error($dbc));
  7. if($resultado)
  8. {
  9.   if($resultado->num_row>0)
  10.     {
  11.     $row=mysqli_fetch_array($resultado);
  12.     $ejercicio=$row;
  13.     } else {echo "No se obtuvieron datos.";}
  14. }
  15. else{
  16. echo "Error: ".mysqli_error($dbc);
  17. }
  18.                        DBclose($dbc);

Por otro lado, ver si el fallo es por las mayusculas:
Código PHP:
Ver original
  1. require_once('escriptsphp/conecDB.php');
  2. require_once('escriptsphp/conexion.php');
  3. $dbc=DBConect();
  4. $query="SELECT basico FROM ejercicios ORDER BY RAND() Limit 1";
  5.  
  6. $resultado=mysqli_query($dbc, $query) or die ("Error de consulta".mysqli_error($dbc));
  7. if($resultado)
  8. {
  9.   if($resultado->num_row>0)
  10.     {
  11.     $row=mysqli_fetch_array($resultado);
  12.     $ejercicio=$row;
  13.     } else {echo "No se obtuvieron datos.";}
  14. }
  15. else{
  16. echo "Error: ".mysqli_error($dbc);
  17. }
  18.                        DBclose($dbc);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)