[AYUDA] Insertar datos de la DB!

Iniciado por cryp70n1c, 22 Agosto 2017, 00:49 AM

0 Miembros y 1 Visitante están viendo este tema.

cryp70n1c

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 (php) [Seleccionar]
<?PHP
include('php/tools/config.php');

$sql = "SELECT * FROM blog_posts ORDER BY postid desc LIMIT 10";
$result = mysqli_query($db, $sql);

if (mysqli_num_rows($result) > 0) {
while($var = mysqli_fetch_assoc($result)) {
$post_title1 = $var["postTitle"];
$post_desc1 = $var["postDesc"];
$post_date1 = $var["pubdate"];
}       
} else {
$post_title1 = "0709 dbError";
$post_desc1 = "0709 dbError";
$post_date1 = "0709 dbError";
}

mysqli_close($db);
?>


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


Código (html4strict) [Seleccionar]
    <div class="col-7 postpreview">
          <h1><?PHP echo $post_title1;?></h1>
          <p><?PHP echo $post_desc1;?></p>
          <p><?PHP echo $post_date1;?></p>
    </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>?

gAb1

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

Código (php) [Seleccionar]
while ($var = mysqli_fetch_assoc($result)) {
    echo '<div class="col-7 postpreview">
    <h1>', $var['postTitle'], '</h1>
    <p>', $var['postDesc'], '/p>
    <p>', $var['pubdate'], '/p>
</div>';
}


O si tienes que llevar el output a otra parte:

Código (php) [Seleccionar]
$output = '';

while ($var = mysqli_fetch_assoc($result)) {
    $output .= '<div class="col-7 postpreview">
    <h1>' . $var['postTitle'] . '</h1>
    <p>' . $var['postDesc'] . '/p>
    <p>' . $var['pubdate'] . '/p>
</div>';
}


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 (php) [Seleccionar]
while ($var = mysqli_fetch_assoc($result)) {
    $post_title1 = $var["postTitle"];
}


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 (php) [Seleccionar]
$output = [];
while ($var = mysqli_fetch_assoc($result)) {
    $output[] = $var["postTitle"];
}


El valor de $output sería:

Código (php) [Seleccionar]
$output = ['title 1', 'title 2', 'title 3'];

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

Código (php) [Seleccionar]
$output[1] = 'title 2';