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.

Gana
sumber
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'];
Shakti Singh
sumber
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);
bmaupin
sumber
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.

avetarman
sumber
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());
Lee Davis
sumber
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;
gemuk
sumber
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'];
Raja Sekhar
sumber
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]);
Алексей Запруднов
sumber
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 :)

Umut Sürmeli
sumber
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

Pushkar Pokharkar
sumber
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';
Legi Smith
sumber
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
AndyLovesRuby
sumber
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;");
SureFoot
sumber
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'];
Sani Kamal
sumber
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

Ram Pukar
sumber
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;
Abdullah Al Shiam
sumber
-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

Samithe Adhikari
sumber
-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;
Dompet Yury
sumber
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'));
Antiprosperous
sumber