New question

Question:

Date: 18-11-2020 07:20:00 (In Spanish)

Error fatal en php[Resolved]

Hola amigos...
Tengo un error que no logro solucionar, estoy intentando mostrar todos los articulos que tengo en la base de datos mediante un while de PHP, pero en mi consulta PDO estoy tendiendo un problema que no logro resolver.

Ya trate de cambiar el
$conexion->query
por un
$conexion->prepare

Y el error se quita pero no me muestra los registros que tengo en la base de datos y tampoco me lanza un error, no me muestra nada cuando cambio el query por el prepare

Código php:

<?php

require_once('../functions/functions.php');

// Sacar todos los articulos de la base de datos cuando el status sea igual a yes
$stmt = $conexion->query("SELECT *, blog.id_blog, blog.id_user_blog, blog.blog_title, blog.body, blog.description_blog, blog.foto_blog, blog.keyword, blog.credito_foto, blog.status_blog, blog.create_at_blog, users.name, users.surname, users.photo_perfil, users.sexo, users.email FROM blog INNER JOIN users ON users.id_usuario = blog.id_user_blog LIMIT 5");
$stmt->execute(['email' => $email]);
while ($row = $stmt->fetch()) {

  // Los datos de la noticia
  $idBlog = $row['id_blog'];
  $title = $row['title_blog'];
  $body = $row['body'];
  $miniDescription = $row['description_blog'];
  $imagen = $row['foto_blog'];
  $keyword = $row['keyword'];
  $credito = $row['credito_foto'];
  $status = $row['status_blog'];
  $fecha = $row['create_at_blog'];

  // Datos del usuario que publicado la noticia
  $name = $row['name'];
  $surname = $row['surname'];
  $emailBlog = $row['email'];
  $photo = $row['photo_perfil'];
  $sexo = $row['sexo'];

?>

<!-- Contenido con los card -->
<section>
    <article class="col s8">
        <a href="detail?id=1&title=titulo-del-producto">
            <div class="row">
                <div class="col s12 m12 xl12">
                    <div class="card">
                    <div class="card-image">
                        <img src="../blog_foto/<?=$imagen?>" alt="<?=$title?>" class="responsive-img" />
                        <a href="profile?id=1&user=braylinpayano" data-position="top" class="btn-floating halfway-fab waves-effect waves-light white tooltipped" data-tooltip="<?=$name.' '.$surname?>">
                        
                        <!-- Si tiene foto de perfil, colocame la que tiene -->
                        <?php if($photo == true) : ?>
                        <img src="../photo-perfil/<?=$photo?>" class="circle" alt="<?=$name.' '.$surname?>" />

                        <!-- Si no tiene foto de perfil, colocame la por defecto -->
                        <?php else : ?>
                        <?php if($sexo == 'masculino') : ?>
                            <img src="../images/profile-masculino.png" class="circle" alt="<?=$name.' '.$surname?>" />

                            <!-- Pero si es una chica, colocame la foto por defecto para chicas -->
                        <?php else : ?>
                            <img src="../images/profile-femenina.png" class="circle" alt="<?=$name.' '.$surname?>" />
                        <?php endif ?><!-- Aqui muere el segundo if de si es chica o chico -->

                        <?php endif ?><!-- Aqui muere el primer if de si no tiene foto de perfil -->
                        
                        </a>
            </a> <!-- Final del enlace de la imagen -->
                    </div>

                    <a href="detail?id=1&title=titulo-del-producto" class="black-text">
                        <div class="card-content">
                            <h1 class="card-title"><?=$title?></h1>
                            <p class="grey-text"><?=substr($body, 0, 100).'...'?></p><br>
                            
                            <!-- Fecha -->
                            <i class="green-text">Publicado el <?=form_fecha($fecha)?></i>
                        </div>
                    </a> <!-- Final del enlace de los titulos y el precio -->

                    </div>
                </div>
                </div>
    </article>
</section> <!-- Fin de un card -->

<?php } ?> <!-- Fin del While -->


Este es el el error que me esta mostrando por pantalla:
[url=https://ibb.co/s1nfNQL][/url]
Tags: PHP - PHP PDO Votes: 0 - Answers: 3 - Views: 5 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 18-11-2020 07:41:11 Hola ,por lo que veo el linea 7 , estas mandando un correo , pero tu sentencia no la necesita , Además el array debe ser llenado de la siguiente forma.
     $stmt->execute( array('email' => $email ) ); 
      Votes: -1 - Link answer
     
  • Date: 18-11-2020 07:58:54 Hola Braylin,
    Estás llamando a execute e intentando enlazar una variable a una sentencia que no utiliza variables.
    En este caso es mejor llamar al método query.
    Intenta con el siguiente código

    <?php
    
    declare(strict_types=1);
    
    require_once('../functions/functions.php');
    
    // Sacar todos los articulos de la base de datos cuando el status sea igual a yes
    $stmt = $conexion->query('SELECT *, b.id_blog, b.id_user_blog, b.blog_title, b.body, b.description_blog, b.foto_blog, b.keyword, b.credito_foto, b.status_blog, b.create_at_blog, u.name, u.surname, u.photo_perfil, u.sexo, u.email FROM blog b INNER JOIN users u ON u.id_usuario = b.id_user_blog LIMIT 5');
    
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        // Los datos de la noticia
        $idBlog = $row['id_blog'];
        $title = $row['title_blog'];
        $body = $row['body'];
        $miniDescription = $row['description_blog'];
        $imagen = $row['foto_blog'];
        $keyword = $row['keyword'];
        $credito = $row['credito_foto'];
        $status = $row['status_blog'];
        $fecha = $row['create_at_blog'];
    
        // Datos del usuario que publicado la noticia
        $name = $row['name'];
        $surname = $row['surname'];
        $emailBlog = $row['email'];
        $photo = $row['photo_perfil'];
        $sexo = $row['sexo'];
        $imagenSexo = ($sexo === 'masculino') ? 'masculino' : 'fememnina';
    ?>
        <!-- Contenido con los card -->
        <section>
            <article class="col s8">
                <div class="row">
                    <div class="col s12 m12 xl12">
                        <div class="card">
                            <div class="card-image">
                                <img src="../blog_foto/<?= $imagen ?>" alt="<?= $title ?>" class="responsive-img"/>
                                <a href="profile?id=1&user=braylinpayano" data-position="top"
                                   class="btn-floating halfway-fab waves-effect waves-light white tooltipped"
                                   data-tooltip="<?= $name . ' ' . $surname ?>">
                                    <!-- Si tiene foto de perfil, colocame la que tiene -->
                                    <?php if ($photo) : ?>
                                        <img src="../photo-perfil/<?= $photo ?>" class="circle"
                                             alt="<?= $name . ' ' . $surname ?>"/>
                                    <?php else : ?>
                                    <img src="../images/profile-<?= $imagenSexo ?>.png" class="circle"
                                         alt="<?= $name . ' ' . $surname ?>"/>
                                    <?php endif ?><!-- Aqui muere el primer if de si no tiene foto de perfil -->
                                </a>
                            </div>
                            <a href="detail?id=1&title=titulo-del-producto" class="black-text">
                                <div class="card-content">
                                    <h1 class="card-title"><?= $title ?></h1>
                                    <p class="grey-text"><?= substr($body, 0, 100) . '...' ?></p><br>
                                    <!-- Fecha -->
                                    <i class="green-text">Publicado el <?= form_fecha($fecha) ?></i>
                                </div>
                            </a> <!-- Final del enlace de los titulos y el precio -->
                        </div>
                    </div>
                </div>
            </article>
        </section> <!-- Fin de un card -->
    <?php
    }
    ?> <!-- Fin del While -->
    


    Espero te sirva

    Saludos
      Votes: 2 - Link answer
     
  • Date: 18-11-2020 16:56:53 Muchas gracias Ernesto por ayudarme a solucionar mi problema.   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In