PHP - Obtener registros aleatorios de la base de datos

 
Vista:
Imágen de perfil de Álvaro
Val: 65
Ha disminuido su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Obtener registros aleatorios de la base de datos

Publicado por Álvaro (22 intervenciones) el 18/03/2020 14:23:15
Buenos días / tardes / noches. Continuo realizando el proyecto con Laravel, siendo bastante fructífero. Estoy llevando a cabo un apartado de sugerencias de libros, pero como mi página web carece de sistema de calificaciones, se tratarán de de registros escogidos de manera aleatoria de la base de datos. Y el problema viene ahí, ya que tengo en un campo de la tabla 'books'. Aquí dejo el modelo entidad - relación para poder ver mejor la estructura de la base de datos:


err

Y aquí visualizo que lo almacenado en la base de datos es la ruta de las portadas. A continuación explicaré para que las uso:


Anotacion-2020-03-18-131753

Las rutas son almacenadas en la base de datos, y las imágenes de las mismas en la carpeta storage/covers, un directorio creado para guardar las portadas de los libros, ahorrando cargar de manera innecesaria la base de datos con imágenes, por muy livianas que sean.

Como decía, lo que pretendo hacer es seleccionar de manera aleatoria esas rutas para visualizarlas en HTML, y la selección funciona, pero el problema viene a la hora de mostrarse:


sugerencias

Se me muestra la URL de la imagen, cosa que no debería hacer. A continuación dejo el código de la consulta y la que debería ser la visualización de las portadas:

1
2
3
4
5
6
7
<div class="col-sm-6">
    {{ asset("storage/covers/" . \App\Book::where("ISBN" , rand(1, \App\Book::value("ISBN")))->value("coverPage")) }}
</div>
 
<div class="col-sm-6">
    {{ asset("storage/covers/" . \App\Book::where("ISBN" , rand(1, \App\Book::value("ISBN")))->value("coverPage")) }}
</div>

Lo que hago es seleccionar un ISBN aleatorio ejecutando la función rand, estableciendo como el mínimo 1, y el máximo alguna de los ISBN que encuentre en la base de datos, evitando así sobrepasar el ISBN más grande.

Agradecería cualquier ayuda o consejo. Muchas gracias
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 Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener registros aleatorios de la base de datos

Publicado por Kathyu (905 intervenciones) el 18/03/2020 16:53:04
No se mucho de Laravel pero no veo en su HTML el tag de img que tendría que recibir en su propiedad src el url de la imagen, es eso normal???????????????????

1
2
3
4
5
6
7
8
<div class="col-sm-6">
   <--!
      Si esto es el url ====> {{ asset("storage/covers/" . \App\Book::where("ISBN" , rand(1, \App\Book::value("ISBN")))->value("coverPage")) }}
      entonces que pasa si hacemos algo como
   --!>
 
   <img src="<?php echo {{ asset("storage/covers/" . \App\Book::where("ISBN" , rand(1, \App\Book::value("ISBN")))->value("coverPage")) }} ?>" title="IMG Titulo" alt="Txt Alternativo" />
</div>

No se si me di a entender????????
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
Imágen de perfil de Álvaro
Val: 65
Ha disminuido su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

Obtener registros aleatorios de la base de datos

Publicado por Álvaro (12 intervenciones) el 19/03/2020 14:16:53
Correcto Justo me di cuenta poco después de publicar el tema, lo que faltaba era la etiqueta <img>, así que ya funciona correctamente. Muchas gracias!!
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 Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Obtener registros aleatorios de la base de datos

Publicado por Kathyu (905 intervenciones) el 19/03/2020 20:01:32
Ya soy profesional de Laravel
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