Ошибка в параметрах php count 2 - PullRequest
0 голосов
/ 24 апреля 2018

Я делаю функцию, которая приносит мне сумму записей в моей базе данных, которые удовлетворяют двум условиям.

я начинаю так

function cuentaticketspendienteempleado($conexion){

         $pendientes = (mysqli_query($conexion, "SELECT COUNT(*) AS conteo FROM ticket ")) or die("Error mostrando  tickets  pendientes: ".mysqli_error($conexion));
        $resultados = mysqli_fetch_row($pendientes);
        return $resultados[0];
    }

Мне нужно добавить еще однуполе к учетной записи.параметр ID отдела, который я хочу назначить, чтобы сообщить мне только билеты или отчеты этого отдела

с использованием предыдущей функции

Когда я пытаюсь учестьбилеты этого пользователя в этом отделе с помощью этой функции

function listTicketUnrevisedSupervisor($conexion, $id){

        $consulta = mysqli_query($conexion, "SELECT *, COUNT(t.id) as contador_tickets, t.id as id_ticket, u.id as user_id, t.fecha_creacion as t_fcreacion, t.hora_creacion as t_hcreacion
                                     FROM ticket as t
                                     JOIN usuario AS u
                                     ON t.id_usuario = u.id
                                     WHERE t.status <> '3' AND u.id_departamento = ".$id."") 
                                     or die("Error listando Ticket: ".mysqli_error($conexion));

        return $consulta;
    }

я получаю это

ошибка

1 Ответ

0 голосов
/ 24 апреля 2018

Может быть, это просто форматирование вашего сообщения, но * нельзя использовать в запросе, когда вы выбираете другие конкретные поля, вы можете использовать функцию, подобную этой

function listTicketUnrevisedSupervisor($conexion, $id) {

$query = "SELECT t.field1, u.field_2, t.id as id_ticket, u.id as user_id, "
        . "t.fecha_creacion as t_fcreacion, "
        . "t.hora_creacion as t_hcreacion "
        . "FROM ticket as t "
        . "JOIN usuario AS u ON t.id_usuario = u.id "
        . "WHERE t.status <> '3' "
        . "AND u.id_departamento = " . $id . " "
        . "ORDER BY t.id DESC ";   
if($consulta = mysqli_query($conexion, $query)){
   return $consulta; 
} else {
    die("Error listando Ticket: ".mysqli_error($conexion));
}    
}

Или просто выберите все

function listTicketUnrevisedSupervisor($conexion, $id) {

$query = "SELECT * "
        . "FROM ticket as t "
        . "JOIN usuario AS u ON t.id_usuario = u.id "
        . "WHERE t.status <> '3' "
        . "AND u.id_departamento = " . $id . " "
        . "ORDER BY t.id DESC ";   
if($consulta = mysqli_query($conexion, $query)){
   return $consulta; 
} else {
    die("Error listando Ticket: ".mysqli_error($conexion));
}    
}

Подсчет строк

$num_rows = mysqli_num_rows($consulta);

mysqli_query документация (ru)

Здесь вы можете проверить документацию о mysqli_query (En Español Juan)

Надеюсь, мой ответ поможет вам.

Редактировать, получить все результаты

Вы можете сделать это с помощью процедуры, подобной этой

    function getTheAssocArrayOfMyQuery($consulta){
    $return= array();
    while ($row= mysqli_fetch_assoc($consulta)) {
        array_push($return, $consulta);
    }
    return $return;
    }

Или, используя mysqli_fetch_all()

     $this_is_the_array_i_will_use = mysqli_fetch_all($consulta,MYSQLI_ASSOC);

mysqli_fetch_all() руководство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...