เลือก count (*) จากตาราง mysql ใน php


93

ฉันสามารถรับทั้งค่าและแถวของผลลัพธ์การสืบค้น mysql

แต่ฉันกำลังดิ้นรนเพื่อให้ได้ผลลัพธ์เดียวของแบบสอบถาม เช่น:

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

ฉันต้องการผลลัพธ์ที่จะแสดง แต่ฉันไม่ได้รับผล

ฉันได้ลองใช้วิธีการต่อไปนี้:

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

แต่ฉันแสดง (รับ) ค่าจริงไม่สำเร็จ


9
โดยตอนนี้คุณควรจะใช้PDO
Lucio

คำตอบ:


204

คุณต้องตั้งชื่อแทนการรวมโดยใช้asคีย์เวิร์ดเพื่อเรียกใช้จากmysql_fetch_assoc

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

9
หลังจากเวอร์ชัน 5.x แบบสอบถามนี้จะใช้ไม่ได้เพียงแค่แทนที่ mysql ด้วย mysqli เพื่อให้ใช้งานได้
ajay verma

31

หากคุณต้องการเพียงค่า:

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

2
echo mysql_result(mysql_query("SELECT count(*) from Students;"),0);กำลังบันทึกตัวแปรที่ไม่จำเป็นตัวหนึ่ง
Max Muster

แก้ไข; คำตอบของฉันเหมาะกับคำถาม
bmaupin

4
@eichertc ตัวแปล php มีตัวแปรอยู่ภายในเสมอเนื่องจากเขาต้องการผลลัพธ์ในหน่วยความจำไม่ทางใดก็ทางหนึ่ง ดังนั้นวิธีของคุณเพียงแค่ทำให้โค้ดแย่ลงในการอ่านและดูแล IMHO
ทอม

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

ลองใช้รหัสนี้


11

โปรดเริ่มใช้ PDO

mysql_ * เลิกใช้แล้วเมื่อ PHP 5.5.0 และจะถูกลบออกทั้งหมดใน 7 มาทำให้การอัปเกรดง่ายขึ้นและเริ่มใช้งานได้ทันที

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

5
$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;

5

นี่คือรหัสสำหรับแสดงการไม่มีแถวในตารางด้วย PHP

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

ฉันชอบการใช้ASที่นี่แทนที่จะต้องพิมพ์echo $data['count(*)'];
พิมพ์ดีด

2

สำหรับผู้ใช้ mysqli รหัสจะมีลักษณะดังนี้:

$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']);

หรือ:

$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

คุณต้องตั้งชื่อแทนการรวมโดยใช้asคีย์เวิร์ดเพื่อเรียกใช้จากmysqli_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', 'pass');
$Sql = "SELECT count(*) as `total` FROM users";
$stmt = $db->query($Sql);
$stmt->execute();
$total = $stmt->fetch(PDO::FETCH_ASSOC);
print '<pre>';
print_r($total);
print '</pre>';

ผลลัพธ์:

ป้อนคำอธิบายภาพที่นี่


สาย 5 ต้องการอะไร คอมไพเลอร์ / IDE ควรเตือนเกี่ยวกับตัวแปร '$ data' ที่ไม่ได้ใช้
ManuelJE

1

คุณสามารถใช้สิ่งนี้และอัปเกรดเป็นmysqli_(หยุดใช้mysql_*ส่วนขยาย ... )

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

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

หลังจากหลายชั่วโมงที่ยอดเยี่ยม :)


0

ด้วย mysql v5.7.20 นี่คือวิธีที่ฉันสามารถนับแถวจากตารางโดยใช้ 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;

บรรทัดที่สามจะส่งคืนโครงสร้างที่มีลักษณะดังนี้:

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

ในกรณีนี้คำสั่ง echo ที่สิ้นสุดจะส่งกลับ:

1570
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.