elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [AYUDA] Insertar datos de la DB!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] Insertar datos de la DB!  (Leído 242 veces)
cryp70n1c

Desconectado Desconectado

Mensajes: 17


MicroRed


Ver Perfil
[AYUDA] Insertar datos de la DB!
« en: 22 Agosto 2017, 00:49 »

Hola! Resulta que me estoy quedando un poquito pegado en esta parte. Estoy creando o mejor dicho experimentado, creando un blog desde cero.  El punto es que estoy en la página principal y necesito que los Datos que tengo en la base de datos los pueda ordenar con variables c/u o crear automáticamente los <div></div> para mostar el contenido del post que estoy cargando de la DB.



Código
  1. <?PHP
  2. include('php/tools/config.php');
  3.  
  4. $sql = "SELECT * FROM blog_posts ORDER BY postid desc LIMIT 10";
  5. $result = mysqli_query($db, $sql);
  6.  
  7. if (mysqli_num_rows($result) > 0) {
  8. while($var = mysqli_fetch_assoc($result)) {
  9. $post_title1 = $var["postTitle"];
  10. $post_desc1 = $var["postDesc"];
  11. $post_date1 = $var["pubdate"];
  12. }      
  13. } else {
  14. $post_title1 = "0709 dbError";
  15. $post_desc1 = "0709 dbError";
  16. $post_date1 = "0709 dbError";
  17. }
  18.  
  19. ?>

Lo que quiero lograr es "mostrar" los valores de las 10 filas en el siguiente código


Código
  1.    <div class="col-7 postpreview">
  2.          <h1><?PHP echo $post_title1;?></h1>
  3.          <p><?PHP echo $post_desc1;?></p>
  4.          <p><?PHP echo $post_date1;?></p>
  5.    </div>


Mi pregunta es,

como lo hago, para mostrar los datos de las 10 listas que extraje de la DB de forma automatizada en la página principal sin tener que escribir 10 veces el <div>?


En línea

gAb1


Desconectado Desconectado

Mensajes: 720


Ver Perfil
Re: [AYUDA] Insertar datos de la DB!
« Respuesta #1 en: 31 Agosto 2017, 19:56 »

Es fácil, tienes que poner el div dentro del while:

Código
  1. while ($var = mysqli_fetch_assoc($result)) {
  2.    echo '<div class="col-7 postpreview">
  3.    <h1>', $var['postTitle'], '</h1>
  4.    <p>', $var['postDesc'], '/p>
  5.    <p>', $var['pubdate'], '/p>
  6. </div>';
  7. }

O si tienes que llevar el output a otra parte:

Código
  1. $output = '';
  2.  
  3. while ($var = mysqli_fetch_assoc($result)) {
  4.    $output .= '<div class="col-7 postpreview">
  5.    <h1>' . $var['postTitle'] . '</h1>
  6.    <p>' . $var['postDesc'] . '/p>
  7.    <p>' . $var['pubdate'] . '/p>
  8. </div>';
  9. }

Lo que no puedes hacer nunca es poner usar una variable si lo que viene de la db es más de 1 resultado, porque entonces estarías sobrescribiendo la variable cada vez, fíjate bien:

postTitle: titulo 1, titulo 2, titulo 3...

Código
  1. while ($var = mysqli_fetch_assoc($result)) {
  2.    $post_title1 = $var["postTitle"];
  3. }

Cual sería el valor de $post_title1? Los 3 títulos? No, el último título solo.

Tienes que concatenar, como has podido ver en el segundo ejemplo, o usar un array:

Código
  1. $output = [];
  2. while ($var = mysqli_fetch_assoc($result)) {
  3.    $output[] = $var["postTitle"];
  4. }

El valor de $output sería:

Código
  1. $output = ['title 1', 'title 2', 'title 3'];

Que se puede acceder con la posición que tiene cada valor dentro del array:

Código
  1. $output[1] = 'title 2';


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines