Wählen Sie count (*) aus der Tabelle von MySQL in PHP

92

Ich kann sowohl den Wert als auch die Zeile des MySQL-Abfrageergebnisses abrufen.

Ich habe jedoch Probleme, die einzige Ausgabe einer Abfrage zu erhalten. z.B:

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

Ich brauche das Ergebnis, um es anzuzeigen. Aber ich bekomme nicht das Ergebnis.

Ich habe mit folgenden Methoden versucht:

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

Es ist mir jedoch nicht gelungen, den tatsächlichen Wert anzuzeigen (abzurufen).

Gana
quelle
8
Inzwischen sollten Sie PDO verwenden .
Lucio

Antworten:

202

Sie müssen das Aggregat mit dem asSchlüsselwort aliasen, um es aufzurufenmysql_fetch_assoc

$result=mysql_query("SELECT count(*) as total from Students");
$data=mysql_fetch_assoc($result);
echo $data['total'];
Shakti Singh
quelle
7
Nach der Version 5.x funktioniert diese Abfrage nicht mehr. Ersetzen Sie einfach mysql durch mysqli, damit es funktioniert.
Ajay Verma
32

Wenn Sie nur den Wert benötigen:

$result = mysql_query("SELECT count(*) from Students;");
echo mysql_result($result, 0);
Bmaupin
quelle
2
echo mysql_result(mysql_query("SELECT count(*) from Students;"),0);speichert eine unnötige Variable
Max Muster
Richtig; Meine Antwort war auf die Frage zugeschnitten.
Bmaupin
4
@ speichernc Der PHP-Interpreter hat die Variable immer intern, da er das Ergebnis auf die eine oder andere Weise im Speicher haben muss. Ihr Weg macht den Code nur schlechter zu lesen und zu pflegen, IMHO.
Tom
14
$result = mysql_query("SELECT COUNT(*) AS `count` FROM `Students`");
$row = mysql_fetch_assoc($result);
$count = $row['count'];

Versuchen Sie diesen Code.

Avetarman
quelle
10

Bitte starten Sie PDO.

mysql_ * ist ab PHP 5.5.0 veraltet und wird in 7 vollständig entfernt. Lassen Sie uns das Upgrade vereinfachen und es jetzt verwenden.

$dbh = new \PDO($dsn, $user, $password);
$sth = $dbh->prepare('SELECT count(*) as total from Students');
$sth->execute();
print_r($sth->fetchAll());
Lee Davis
quelle
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;
fatnjazzy
quelle
4

Hier ist der Code zum Anzeigen der Anzahl der Zeilen in der Tabelle mit PHP

$sql="select count(*) as total from student_table";
$result=mysqli_query($con,$sql);
$data=mysqli_fetch_assoc($result);
echo $data['total'];
Raja Sekhar
quelle
Ich mag die Verwendung von AShier, anstatt echo $data['count(*)'];
schreiben zu
2

Für mysqli-Benutzer sieht der Code folgendermaßen aus:

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

oder:

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

$result = $mysqli->query("SELECT COUNT(*) FROM Students")->fetch_array();
var_dump($result[0]);
Алексей Запруднов
quelle
1
 $howmanyuser_query=$conn->query('SELECT COUNT(uno)  FROM userentry;');
 $howmanyuser=$howmanyuser_query->fetch_array(MYSQLI_NUM); 
 echo $howmanyuser[0];

nach so vielen stunden ausgezeichnet :)

Umut Sürmeli
quelle
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'];
  }     
 }

In dieser Zählung ist die Anzahl der Vorkommen in der Spalte Frage1, Seine Arbeit vollständig

Pushkar Pokharkar
quelle
1

Sie können dies auch verwenden und auf aktualisieren mysqli_( keine mysql_*Erweiterung mehr verwenden ...)

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

Mit mysql v5.7.20 konnte ich mit PHP v7.0.22 die Zeilenanzahl aus einer Tabelle abrufen:

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

Die dritte Zeile gibt eine Struktur zurück, die folgendermaßen aussieht:

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

In diesem Fall gibt die abschließende Echoanweisung Folgendes zurück:

1570
AndyLovesRuby
quelle
1

Ich denke, es gibt einen Tippfehler in Ihrem Code und Sie sollten das vorletzte Semikolon in entfernen:

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

Sie müssen das Aggregat mit dem asSchlüsselwort aliasen, um es aufzurufenmysqli_fetch_assoc

$result=mysqli_query($conn,"SELECT count(*) as total from Students");
$data=mysqli_fetch_assoc($result);
echo $data['total'];
Sani Kamal
quelle
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>';

Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Ram Pukar
quelle
0

Ich denke, es ist eine bessere Antwort.

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

Dies ist auch in Ordnung, aber dies ist das, was 0 Indexwert durch Verschieben des Abrufarrays zurückgibt. begrüße alle

Samithe Adhikari
quelle
-1

Aus dem Bereich der Optionen wurde diese nicht erwähnt. Auch wenn es nicht optimal oder unnötig ist, kann es mit einer einfachen Schleife durchgeführt werden:

$result=mysqli_query($conn, "SELECT count(1) as total from Students");
foreach ($result as $rez) {$numb=$rez['total'];}
echo $numb;
Yury Wallet
quelle
Das liegt daran, dass es nicht notwendig ist, eine Schleife zu schreiben. Bitte posten Sie niemals Antworten nur mit Code. Jede Antwort verdient eine Erklärung - auch wenn sie einfach ist. Besonders auf überladenen Seiten wie dieser sollten Sie den Vorteil Ihres Ratschlags gegenüber anderen Antworten erläutern.
mickmackusa
Ich glaube, wenn diese Option funktioniert, auch wenn sie in gewisser Hinsicht nicht optimal ist, kann sie jemandem helfen, sein Problem zu lösen. Was mich betrifft, finde ich oft Antworten und noch häufiger Ideen, die für mich funktionieren, in den Antworten, die nicht als "beste Antwort" gekennzeichnet sind. Und manchmal enthüllen solche "seltsamen Lösungen" die Logik hinter der Idee, dass sie ausgenutzt werden könnten. Pass auf!
Yury Wallet
1
Haben Sie ein gewisses Einfühlungsvermögen für Forscher, die versuchen, die beste Antwort für ihr Projekt zu finden, und keine Zeit zu verlieren haben. Forscher wollen NICHT 18 sehr ähnliche Lösungen lesen - sie wollen so schnell wie möglich die beste Antwort finden. Niemand sollte mehr mysql_Funktionen verwenden - auch wenn diese alte Frage sie verwendet. In meiner IDE gibt es ein Flag, das angibt, dass es $numbmöglicherweise nicht deklariert ist. Die Verwendung einer Schleife wurde bereits von PushkarPokharkar durchgeführt, ist jedoch wiederum nicht erforderlich. Ich werde meinen Teil dazu beitragen, Forschern durch Downvoting-Techniken zu helfen, die ich nicht empfehle.
Mickmackusa
1
Dies ist KEIN persönlicher Angriff auf dich. Dies ist mein Urteil über die Qualität dieses Beitrags.
mickmackusa
-4

Wenn Sie nur den Zählwert möchten, können Sie eine Abkürzung verwenden:

$cnt = mysql_num_rows(mysql_query('select * from students'));
Antiprosperous
quelle