Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar registro aleatorio de entre varias tablas

Estas en el tema de Mostrar registro aleatorio de entre varias tablas en el foro de PHP en Foros del Web. Buenas. Esto me trae de cabeza, a ver si podeis ayudarme. Tengo 7 tablas con distintos nombres pero con la misma estructura: ID Pregunta RespuestaA ...
  #1 (permalink)  
Antiguo 30/01/2015, 08:16
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Mostrar registro aleatorio de entre varias tablas

Buenas.
Esto me trae de cabeza, a ver si podeis ayudarme.
Tengo 7 tablas con distintos nombres pero con la misma estructura:
ID
Pregunta
RespuestaA
RespuestaB
RespuestaC
RespuestaD

Pues bien, lo que me gustaria es crear un apartado que muestre una unica pregunta aleatoria entre todas las preguntas disponibles en esas 7 tablas. (Cada tabla es un tipo, por ejemplo, sumas, restas, multiplicaciones,...)

El codigo que estoy usando para hacer aleatoria en UNA unica tabla es este:

Código PHP:
$repaso="SELECT COUNT(Pregunta) FROM Verbal";
$cantidad=mysql_query($repaso$conectar);
$result=mysql_fetch_row($cantidad);
$fila=$result[0];
$aleatorio=rand(0,$fila-1);

//Mostramos pregunta
$mostrar="SELECT ID, Pregunta, RespuestaA, RespuestaB, RespuestaC, RespuestaD FROM Verbal LIMIT $aleatorio, 1";
$mostrarr=mysql_query($mostrar$conectar);
$row=mysql_fetch_assoc($mostrarr); 
He probado ha hacer el COUNT de todas las tablas y de ninguna de las formas que he probado me ha funcionado.

Al igual que no ha funcionado tampoco la parte de "mostramos la pregunta" pero al no funcionar el COUNT no se si lo estaba haciendo bien o no de todas formas.

Espero haberme explicado y que podais ayudarme.

Un saludo.
  #2 (permalink)  
Antiguo 30/01/2015, 11:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar registro aleatorio de entre varias tablas

En MySQL existe una función que se llama RAND(), y se usa así:
Cita:
SELECT * FROM tabla ORDER BY RAND() LIMIT 1
En otros motores de bases de datos cambia a RANDOM(), etc.

Por favor, procura postear en el sub-foro correcto: tu problema nada tiene que ver con código PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/01/2015, 11:28
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: Mostrar registro aleatorio de entre varias tablas

Ya conozco esa funcion, es similar lo que estoy haciendo, y fuera como fuese sigue sin salirme hacerlo en las 7 tablas a la vez.

Postee en PHP porque tal y como lo tenia planteado era una mezcla de PHP y MySQL y me parecio mejor ponerlo aqui, lamento el error.

Pero repito, ya sea COUNT o RAND me da error al meter las siete tablas en el FROM.
  #4 (permalink)  
Antiguo 30/01/2015, 11:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mostrar registro aleatorio de entre varias tablas

Cita:
Iniciado por migue_coco Ver Mensaje
Pero repito, ya sea COUNT o RAND me da error al meter las siete tablas en el FROM.
Pues precisamente ese es un problema de SQL: es imposible obtener un registro aleatorio de varias tablas al mismo tiempo.

Y bueno, sabiendo eso, no entiendo cómo puedes seguir intentándolo, eso lo sabrías ya de haber leído el manual de RAND() al respecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: registro, select, sql, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:54.