У меня есть эта проблема: Warning: count (): Parameter must be an array or an object that implements Countable in ... любое решение?


<?php

        $datos = array("idUsuario"=>"",
                       "idProducto"=>$infoproducto["id"]);

        $comentarios = ControladorUsuarios::ctrMostrarComentariosPerfil($datos);
        $cantidad = 0;

        foreach ($comentarios as $key => $value){

            if($value["comentario"] != ""){

                $cantidad += count($value["id"]);

            }
        }

        ?>

некоторая альтернатива, я уже пробовал с другими версиями php.

static public function ctrMostrarComentariosPerfil($datos){

    $tabla = "comentarios";

    $respuesta = ModeloUsuarios::mdlMostrarComentariosPerfil($tabla, $datos);

    return $respuesta;

}
static public function mdlMostrarComentariosPerfil($tabla, $datos){

    if($datos["idUsuario"] != ""){

        $stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla WHERE id_usuario = :id_usuario AND id_producto = :id_producto");

        $stmt -> bindParam(":id_usuario", $datos["idUsuario"], PDO::PARAM_INT);
        $stmt -> bindParam(":id_producto", $datos["idProducto"], PDO::PARAM_INT);

        $stmt -> execute();

        return $stmt -> fetch();

    }else{

        $stmt = Conexion::conectar()->prepare("SELECT * FROM $tabla WHERE id_producto = :id_producto ORDER BY Rand()");

        $stmt -> bindParam(":id_producto", $datos["idProducto"], PDO::PARAM_INT);

        $stmt -> execute();

        return $stmt -> fetchAll();

    }

    $stmt-> close();

    $stmt = null;

}
Author: Miguel Clavijo, 2018-05-09

1 answers

Я думаю, что вы хотите подсчитать непустые Комментарии, count php возвращает количество элементов array, попробуйте это:

<?php
    function tieneComentario($value)
    {
        return $value["comentario"] != "";
    }

    $datos = array("idUsuario"=>"",
                   "idProducto"=>$infoproducto["id"]);

    $comentarios = ControladorUsuarios::ctrMostrarComentariosPerfil($datos);
    $cantidad = count(array_filter($comentarios, "tieneComentario"));



    ?>
 5
Author: Jordi Artau, 2018-05-10 11:03:42