pilih count (*) dari tabel mysql di php


93

Saya bisa mendapatkan nilai dan baris dari hasil kueri mysql.

Tapi saya berjuang untuk mendapatkan hasil tunggal dari sebuah kueri. misalnya:

$result = mysql_query("SELECT COUNT(*) FROM Students;");

Saya butuh hasilnya untuk ditampilkan. Tapi saya tidak mendapatkan hasil.

Saya telah mencoba dengan metode berikut:

  1. mysql_fetch_assoc()
  2. mysql_free_result()
  3. mysql_fetch_row()

Tetapi saya tidak berhasil menampilkan (mendapatkan) nilai sebenarnya.


8
Sekarang Anda harus menggunakan PDO .
Lucio

Jawaban:


202

Anda perlu membuat alias gabungan menggunakan askata kunci untuk memanggilnyamysql_fetch_assoc

$result=mysql_query("SELECT count(*) as total from Students");
$data=mysql_fetch_assoc($result);
echo $data['total'];

7
Setelah versi 5.x kueri ini tidak akan berfungsi, cukup ganti mysql dengan mysqli untuk membuatnya berfungsi.
ajay verma

32

Jika Anda hanya membutuhkan nilainya:

$result = mysql_query("SELECT count(*) from Students;");
echo mysql_result($result, 0);

2
echo mysql_result(mysql_query("SELECT count(*) from Students;"),0);menyimpan satu variabel yang tidak perlu
Max Muster

Benar; jawaban saya disesuaikan dengan pertanyaan.
bmaupin

4
@eichertc, penerjemah php memiliki variabel yang selalu internal, karena ia perlu memiliki hasil dalam memori dengan satu atau lain cara. Jadi cara Anda hanya membuat kode bekerja untuk dibaca dan dipelihara, IMHO.
Tom

15
$result = mysql_query("SELECT COUNT(*) AS `count` FROM `Students`");
$row = mysql_fetch_assoc($result);
$count = $row['count'];

Coba kode ini.


10

Silakan mulai menggunakan PDO.

mysql_ * tidak digunakan lagi sejak PHP 5.5.0 dan akan dihapus seluruhnya dalam 7. Mari kita membuatnya lebih mudah untuk meningkatkan dan mulai menggunakannya sekarang.

$dbh = new \PDO($dsn, $user, $password);
$sth = $dbh->prepare('SELECT count(*) as total from Students');
$sth->execute();
print_r($sth->fetchAll());

6
$num_result = mysql_query("SELECT count(*) as total_count from Students ") or exit(mysql_error());
$row = mysql_fetch_object($num_result);
echo $row->total_count;

4

berikut adalah kode untuk menunjukkan tidak ada baris dalam tabel dengan PHP

$sql="select count(*) as total from student_table";
$result=mysqli_query($con,$sql);
$data=mysqli_fetch_assoc($result);
echo $data['total'];

Saya suka penggunaan di ASsini, daripada perlu mengetikecho $data['count(*)'];
Typewar

2

Untuk pengguna mysqli, kodenya akan terlihat seperti ini:

$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);

$result = $mysqli->query("SELECT COUNT(*) AS Students_count FROM Students")->fetch_array();
var_dump($result['Students_count']);

atau:

$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);

$result = $mysqli->query("SELECT COUNT(*) FROM Students")->fetch_array();
var_dump($result[0]);

1
 $howmanyuser_query=$conn->query('SELECT COUNT(uno)  FROM userentry;');
 $howmanyuser=$howmanyuser_query->fetch_array(MYSQLI_NUM); 
 echo $howmanyuser[0];

setelah berjam-jam luar biasa :)


1
$abc="SELECT count(*) as c FROM output WHERE question1=4";
$result=mysqli_query($conn,$abc);
if($result)
 {
    while($row=mysqli_fetch_assoc($result))
  {
        echo $row['c'];
  }     
 }

Dalam hal ini menghitung jumlah kemunculan di kolom pertanyaan1, Ini berfungsi sepenuhnya


1

Anda juga dapat menggunakan ini dan meningkatkan ke mysqli_(berhenti menggunakan mysql_*ekstensi ...)

$result = mysqli_query($conn, "SELECT COUNT(*) AS `count` FROM `Students`");
$row = mysqli_fetch_array($result);
$count = $row['count'];
echo'$count';

1

Dengan mysql v5.7.20, berikut adalah bagaimana saya bisa mendapatkan jumlah baris dari tabel menggunakan PHP v7.0.22:

$query = "select count(*) from bigtable";
$qresult = mysqli_query($this->conn, $query);
$row = mysqli_fetch_assoc($qresult);
$count = $row["count(*)"];
echo $count;

Baris ketiga akan mengembalikan struktur yang terlihat seperti ini:

array(1) {
   ["count(*)"]=>string(4) "1570"
}

Dalam hal ini pernyataan echo penutup akan mengembalikan:

1570

1

Saya pikir ada kesalahan ketik dalam kode Anda dan Anda harus menghapus titik koma kedua hingga terakhir di:

$result = mysql_query("SELECT COUNT(*) FROM Students;");

1

Anda perlu membuat alias gabungan menggunakan askata kunci untuk memanggilnyamysqli_fetch_assoc

$result=mysqli_query($conn,"SELECT count(*) as total from Students");
$data=mysqli_fetch_assoc($result);
echo $data['total'];

1
$db  = new PDO('mysql:host=localhost;dbname=java_db', 'root', '') or die(mysql_errno());
$Sql = "SELECT count(*) as 'total' FROM users";
$stmt = $db->query($Sql);
$stmt->execute();
$data = array();
$total = $stmt->fetch(PDO::FETCH_ASSOC);
print '<pre>';
print_r($total);
print '</pre>';

Hasil:

masukkan deskripsi gambar di sini


0

Saya pikir itu jawaban yang lebih baik.

$query = "SELECT count(*) AS total FROM table_name"; 
mysql_select_db('database_name');
$result = mysql_query($query); 
$values = mysql_fetch_assoc($result); 
$num_rows = $values['total']; 
echo $num_rows;

-1
$qry_appr = "SELECT COUNT(*) FROM comments WHERE admin_panel_id ='$id' AND status = 'ON'";
$qry_data = mysqli_query($con, $qry_appr);
$approve_count = mysqli_fetch_array($qry_data);
$toatalCount = array_shift($approve_count);
echo $toatalCount;

Ini juga akan baik-baik saja tetapi ini melakukan apa yang mengembalikan nilai indeks 0 dengan menggeser larik fetch. Selamat datang semuanya


-1

Di luar kisaran opsi yang satu ini tidak disebutkan. Meskipun tidak optimal atau tidak perlu tetapi dapat dilakukan dengan loop sederhana:

$result=mysqli_query($conn, "SELECT count(1) as total from Students");
foreach ($result as $rez) {$numb=$rez['total'];}
echo $numb;

Itu karena tidak perlu menulis loop. Harap jangan pernah memposting jawaban hanya kode. Setiap jawaban pantas untuk dijelaskan - meskipun sederhana. Terutama pada halaman yang kelebihan muatan seperti ini - Anda harus menjelaskan keuntungan dari saran Anda dibandingkan jawaban lain.
mickmackusa

Saya percaya bahwa jika opsi ini berfungsi meskipun tidak optimal dalam beberapa hal, itu dapat membantu seseorang untuk menyelesaikan masalah mereka. Bagi saya, saya sering menemukan jawaban dan bahkan lebih sering ide yang cocok untuk saya dalam jawaban yang tidak ditandai sebagai 'jawaban terbaik'. Dan terkadang "solusi aneh" semacam itu mengungkapkan logika di balik gagasan tersebut, yang dapat dieksploitasi. Hati hati!
Dompet Yury

1
Miliki empati untuk peneliti yang mencoba menentukan jawaban terbaik untuk proyek mereka dan tidak punya waktu untuk disia-siakan. Peneliti TIDAK ingin membaca 18 solusi yang sangat mirip - mereka ingin menemukan jawaban terbaik secepat mungkin. Tidak seorang pun seharusnya menggunakan mysql_fungsi lagi - meskipun pertanyaan lama ini sedang menggunakannya. Di IDE saya, akan ada flag yang menyatakan yang $numbmungkin tidak dideklarasikan. Menggunakan loop sudah dilakukan oleh PushkarPokharkar tetapi sekali lagi itu tidak perlu. Saya akan melakukan bagian saya untuk membantu peneliti dengan teknik downvoting yang tidak saya rekomendasikan.
mickmackusa

1
Ini BUKAN serangan pribadi terhadap Anda. Ini adalah penilaian saya tentang kualitas posting ini.
mickmackusa

-4

Jika Anda hanya menginginkan nilai hitungan, Anda dapat menulis singkat:

$cnt = mysql_num_rows(mysql_query('select * from students'));
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.