php में mysql की तालिका से गिनती (*) का चयन करें


93

मैं mysql क्वेरी परिणाम के मूल्य और पंक्ति दोनों को प्राप्त करने में सक्षम हूं।

लेकिन मैं एक क्वेरी का एकल आउटपुट प्राप्त करने के लिए संघर्ष कर रहा हूं। उदाहरण के लिए:

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

मुझे प्रदर्शन के लिए परिणाम चाहिए। लेकिन मुझे इसका परिणाम नहीं मिल रहा है।

मैंने निम्नलिखित विधियों के साथ प्रयास किया है:

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

लेकिन मैं वास्तविक मूल्य प्रदर्शित (प्राप्त) करने में सफल नहीं हुआ।


8
अब तक आपको पीडीओ का उपयोग करना चाहिए ।
लुसियो

जवाबों:


202

आपको asइसे कॉल करने के लिए कीवर्ड का उपयोग करके एग्रीगेट को अन्य नाम देना होगाmysql_fetch_assoc

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

7
5.x संस्करण के बाद यह क्वेरी काम करने के लिए mysqli के साथ mysql की जगह नहीं लेगी।
अजय वर्मा 16

32

यदि आपको केवल मूल्य की आवश्यकता है:

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

2
echo mysql_result(mysql_query("SELECT count(*) from Students;"),0);एक अनावश्यक चर को बचा रहा है
मैक्स मस्टर

सही बात; मेरा जवाब सवाल के अनुरूप था।
बामुपिन

4
@eichertc php दुभाषिया में चर हमेशा आंतरिक होता है, क्योंकि उसे स्मृति में परिणाम एक तरह से या दूसरे तरीके से प्राप्त करने की आवश्यकता होती है। तो आपका तरीका सिर्फ IMHO को पढ़ने और बनाए रखने के लिए कोड वर्सर बनाता है।
टॉम

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

इस कोड को आज़माएं।


10

कृपया पीडीओ का उपयोग शुरू करें।

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

यहाँ 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
 $howmanyuser_query=$conn->query('SELECT COUNT(uno)  FROM userentry;');
 $howmanyuser=$howmanyuser_query->fetch_array(MYSQLI_NUM); 
 echo $howmanyuser[0];

इतने घंटे उत्कृष्ट के बाद :)


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'];
  }     
 }

इसमें सवाल 1 कॉलम में होने वाली घटनाओं की संख्या, इसका काम पूरी तरह से


1

आप इसका उपयोग कर सकते हैं और अपग्रेड कर सकते हैं mysqli_( mysql_*एक्सटेंशन का उपयोग करना बंद कर दें ...)

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

1

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"
}

जिस स्थिति में अंतिम प्रतिध्वनी विवरण वापस आएगी:

1570

1

मुझे लगता है कि आपके कोड में एक टाइपो है और आपको दूसरे से अंतिम अर्ध-कोलन में निकालना चाहिए:

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

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', '') 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>';

परिणाम:

यहां छवि विवरण दर्ज करें


0

मुझे लगता है कि यह बेहतर उत्तर है।

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

यह भी ठीक होगा लेकिन यह वही है जो लाने वाले सरणी को स्थानांतरित करके 0 इंडेक्स मान लौटाता है। सभी का स्वागत


-1

विकल्पों में से इस एक का उल्लेख नहीं किया गया था। भले ही यह इष्टतम या अनावश्यक नहीं है, लेकिन यह एक साधारण लूप के साथ किया जा सकता है:

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

ऐसा इसलिए है क्योंकि लूप लिखना अनावश्यक है। कृपया कोड-केवल उत्तर पोस्ट न करें। हर उत्तर को स्पष्ट करने के योग्य है - भले ही यह सरल हो। विशेष रूप से इस तरह के अतिभारित पृष्ठों पर - आपको अपनी सलाह का लाभ बनाम अन्य उत्तरों के बारे में बताना चाहिए।
मिकमैकुसा

मेरा मानना ​​है कि अगर यह विकल्प काम कर रहा है, भले ही यह कुछ शर्तों में इष्टतम न हो तो यह किसी को उनकी समस्या को हल करने में मदद कर सकता है। मेरे लिए, मुझे अक्सर उत्तर मिलते हैं और इससे भी अधिक अक्सर विचार जो मेरे लिए उन उत्तरों में काम करते हैं जो 'सर्वश्रेष्ठ उत्तर' के रूप में चिह्नित नहीं हैं। और कभी-कभी ऐसे "अजीब समाधान" विचार के पीछे के तर्क को प्रकट करते हैं, कि तख्तापलट का शोषण किया जाए। ख्याल रखना!
यूरी वॉलेट

1
शोधकर्ताओं के लिए कुछ सहानुभूति रखें जो अपनी परियोजना के लिए सबसे अच्छा उत्तर निर्धारित करने की कोशिश कर रहे हैं और बर्बाद करने का कोई समय नहीं है। शोधकर्ता 18 बहुत समान समाधान नहीं पढ़ना चाहते हैं - वे यथासंभव सर्वोत्तम उत्तर ढूंढना चाहते हैं। कोई भी mysql_फ़ंक्शंस का उपयोग नहीं करना चाहिए - भले ही यह पुराना प्रश्न इसका उपयोग कर रहा हो। मेरी आईडीई में, एक झंडा होगा, $numbजिसे घोषित नहीं किया जा सकता है। एक लूप का उपयोग पुष्करपोकर द्वारा पहले ही कर दिया गया था लेकिन फिर से यह अनावश्यक है। मैं अपनी तकनीकों को डाउनवॉट करने के लिए शोधकर्ताओं की मदद करने के लिए अपनी भूमिका निभाऊंगा जो मैं सुझाता नहीं हूं।
मिकमैकुसा

1
यह आप पर व्यक्तिगत हमला नहीं है। यह इस पद की गुणवत्ता का मेरा निर्णय है।
मिकमैकुसा

-4

यदि आप केवल गणना मूल्य चाहते हैं तो आप शॉर्टहैंड कर सकते हैं:

$cnt = mysql_num_rows(mysql_query('select * from students'));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.