Получение значения COUNT(*) в PHP

#php #mysql

#php #mysql

Вопрос:

Я использую to following для подсчета количества строк в таблице:

 // Count rows
$sql = "SELECT COUNT(*) FROM articles";
$result = mysqli_query($con,$sql);
$max = mysqli_fetch_row($result);

echo $max;
  

Это повторяется array . Я понимаю, почему, но я не могу найти, как получить значение в этом случае. Я пробовал $max[0] . Я не понимаю, как ссылаться на столбец в массиве в этом случае.

Комментарии:

1. var_dump($max) или print_r($max) должен дать вам представление о том, как ссылаться на него.

2. Вы попробовали $max[0] , и что потом?

3. @Jack Он напечатал то же самое, «массив». Как и решения, предложенные в ответе ниже

4. @Juicy попробуйте мой отредактированный ответ

5. @crush вы правы, он должен возвращать один результат, а не массив, но я дал ему возможность получить этот массив, пока я редактирую. так что мне просто интересно 🙂

Ответ №1:

попробуй это:

     $sql = "SELECT COUNT(*) as counts FROM articles";
    $result = mysqli_query($con,$sql);
    $max = mysqli_fetch_assoc($result);

    echo $max['counts'];
  

некоторые документы здесь

Редактировать:

     $sql = "SELECT COUNT(*) as counts FROM articles";
    $result = mysqli_query($con,$sql);
    while($max = mysqli_fetch_assoc($result))
    {
    echo $max['counts'];
    }
  

Комментарии:

1. Почему ему нужно указывать COUNT(*) псевдоним, чтобы он был доступен в массиве? Хотя этот код действителен, он не объясняет, почему у операционной системы возникла проблема. Я думаю, что в этой проблеме есть нечто большее, чем показал нам OP. Ему вообще не нужно использовать mysqli_fetch_assoc .

2. да , он скрывает какой-то код, потому что он должен работать с $max[0] .

Ответ №2:

Вы должны использовать MySQL PDO.

Попробуйте это:

 try{
    $conn = new PDO("mysql:host=localhost;dbname=dbname", username, password); 
    $conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    } catch(PDOException $e) {
        $errors = "There is no connection to the Server: localhost"; 
    }

$qry = $conn -> prepare("SELECT COUNT(*) AS counts FROM articles");

$qry -> execute();


while($row = $qry->fetch(PDO::FETCH_ASSOC)) {

   $Total = $row['counts']; 

} 
echo $Total;