seleccione count (*) de la tabla de mysql en php

93

Puedo obtener tanto el valor como la fila del resultado de la consulta de mysql.

Pero estoy luchando por obtener el resultado único de una consulta. p.ej:

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

Necesito que se muestre el resultado. Pero no obtengo el resultado.

Lo he probado con los siguientes métodos:

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

Pero no logré mostrar (obtener) el valor real.

Gana
fuente
8
A estas alturas debería estar usando PDO .
Lucio

Respuestas:

202

Debe asignar un alias al agregado utilizando la aspalabra clave para llamarlo desdemysql_fetch_assoc

$result=mysql_query("SELECT count(*) as total from Students");
$data=mysql_fetch_assoc($result);
echo $data['total'];
Shakti Singh
fuente
7
Después de la versión 5.x, esta consulta no funcionará, simplemente reemplace mysql con mysqli para que funcione.
ajay verma
32

Si solo necesita el valor:

$result = mysql_query("SELECT count(*) from Students;");
echo mysql_result($result, 0);
bmaupin
fuente
2
echo mysql_result(mysql_query("SELECT count(*) from Students;"),0);está guardando una variable innecesaria
Max Muster
Correcto; mi respuesta se adaptó a la pregunta.
bmaupin
4
@eichertc el intérprete php tiene la variable siempre interna, ya que necesita tener el resultado en la memoria de una forma u otra. Entonces, su manera solo hace que el código sea más difícil de leer y mantener, en mi humilde opinión.
Tom
15
$result = mysql_query("SELECT COUNT(*) AS `count` FROM `Students`");
$row = mysql_fetch_assoc($result);
$count = $row['count'];

Prueba este código.

avetarman
fuente
10

Empiece a utilizar PDO.

mysql_ * está obsoleto a partir de PHP 5.5.0 y se eliminará por completo en 7. Facilitemos la actualización y comencemos a usarlo ahora.

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

aquí está el código para mostrar el número de filas en la tabla con PHP

$sql="select count(*) as total from student_table";
$result=mysqli_query($con,$sql);
$data=mysqli_fetch_assoc($result);
echo $data['total'];
Raja Sekhar
fuente
Me gusta el uso de ASaquí, en lugar de tener que escribirecho $data['count(*)'];
Typewar
2

Para los usuarios de mysqli, el código se verá así:

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

o:

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

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

después de tantas horas excelente :)

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

En este su recuento el número de ocurrencias en la columna question1, su trabajo completamente

Pushkar Pokharkar
fuente
1

también puede usar esto y actualizar a mysqli_(dejar de usar la mysql_*extensión ...)

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

Con mysql v5.7.20, así es como pude obtener el recuento de filas de una tabla usando 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;

La tercera línea devolverá una estructura que se ve así:

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

En cuyo caso, la declaración de eco final devolverá:

1570
AndyLovesRuby
fuente
1

Creo que hay un error tipográfico en su código y debe eliminar el penúltimo punto y coma en:

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

Debe asignar un alias al agregado utilizando la aspalabra clave para llamarlo desdemysqli_fetch_assoc

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

Resultado:

ingrese la descripción de la imagen aquí

Ram Pukar
fuente
0

Creo que es una mejor respuesta.

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

Esto también estará bien, pero esto es lo que devuelve el valor de índice 0 al cambiar la matriz de recuperación. todos bienvenidos

Samithe Adhikari
fuente
-1

Fuera de la gama de opciones, esta no fue mencionada. Incluso si no es óptimo o innecesario, pero se puede hacer con un simple bucle:

$result=mysqli_query($conn, "SELECT count(1) as total from Students");
foreach ($result as $rez) {$numb=$rez['total'];}
echo $numb;
Billetera Yury
fuente
Eso es porque no es necesario escribir un bucle. Nunca publique respuestas de solo código. Cada respuesta merece ser explicada, incluso si es simple. Especialmente en páginas sobrecargadas como esta, debe explicar la ventaja de su consejo frente a otras respuestas.
mickmackusa
Creo que si esta opción funciona incluso si no es óptima en algunos términos, puede ayudar a alguien a resolver su problema. En cuanto a mí, a menudo encuentro respuestas e incluso más a menudo ideas que funcionan para mí en las respuestas que no están marcadas como 'mejor respuesta'. Y, a veces, estas "soluciones extrañas" revelan la lógica detrás de la idea, que podría explotarse. ¡Cuídate!
Yury Wallet
1
Tenga cierta empatía por los investigadores que están tratando de determinar la mejor respuesta para su proyecto y no tienen tiempo que perder. Los investigadores NO quieren leer 18 soluciones muy similares; quieren encontrar la mejor respuesta lo más rápido posible. Nadie debería usar mysql_más funciones, incluso si esta vieja pregunta lo está usando. En mi IDE, habría una bandera que indica que $numbpodría no declararse. PushkarPokharkar ya hizo el uso de un bucle, pero nuevamente es innecesario. Haré mi parte para ayudar a los investigadores al rechazar técnicas que no recomiendo.
mickmackusa
1
Esto NO es un ataque personal contra ti. Este es mi juicio sobre la calidad de esta publicación.
mickmackusa
-4

Si solo desea el valor de recuento, puede hacer taquigrafía:

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