Anda memiliki beberapa opsi cara mendapatkan nilai COUNT(*)
dari SQLnya. Tiga yang paling mudah mungkin adalah ini:
$sql = "SELECT COUNT(*) FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_assoc($result)['COUNT(*)'];
echo $count;
atau menggunakan alias kolom:
$sql = "SELECT COUNT(*) as cnt FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_assoc($result)['cnt'];
echo $count;
atau menggunakan array numerik:
$sql = "SELECT COUNT(*) FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_row($result)[0];
echo $count;
Jika Anda menggunakan PHP 8.1, maka Anda dapat melakukannya dengan lebih sederhana:
$sql = "SELECT COUNT(*) FROM news";
$result = mysqli_query($con, $sql);
$count = mysqli_fetch_column($result);
echo $count;
// or using OO style
echo $con->query("SELECT COUNT(*) FROM news")->fetch_column();
Jangan gunakan mysqli_num_rows
untuk menghitung catatan dalam database seperti yang disarankan di beberapa tempat di web. Fungsi ini sangat sedikit digunakan, dan menghitung catatan jelas bukan salah satunya. Menggunakan mysqli_num_rows
Anda akan meminta MySQL untuk mengambil semua pencocokan catatan dari database, yang bisa sangat memakan sumber daya. Jauh lebih baik untuk mendelegasikan tugas menghitung catatan ke MySQL dan kemudian hanya mendapatkan nilai yang dikembalikan dalam PHP seperti yang ditunjukkan dalam jawaban saya.
Saya juga merekomendasikan untuk mempelajari OOP, yang membuat kode Anda lebih bersih dan lebih mudah dibaca. Hal yang sama dengan OOP dapat dilakukan sebagai berikut:
$sql = "SELECT COUNT(*) FROM news";
$count = $con->query($sql)->fetch_row()[0];
echo $count;
Jika kueri Anda menggunakan variabel, maka Anda dapat melakukan hal serupa, tetapi menggunakan pernyataan yang telah disiapkan.
$sql = "SELECT COUNT(*) FROM news WHERE category=?";
$stmt = $con->prepare($sql);
$stmt->bind_param('s', $category);
$stmt->execute();
$count = $stmt->get_result()->fetch_row()[0];
echo $count;