#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;