PHP의 mysql 테이블에서 count (*)를 선택하십시오.


92

mysql 쿼리 결과의 값과 행을 모두 얻을 수 있습니다.

그러나 나는 쿼리의 단일 출력을 얻기 위해 고군분투하고 있습니다. 예 :

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

표시 할 결과가 필요합니다. 그러나 나는 결과를 얻지 못하고 있습니다.

다음 방법으로 시도했습니다.

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

그러나 나는 실제 값을 표시하는 데 성공하지 못했습니다.


8
지금 쯤이면 PDO 를 사용해야합니다 .
Lucio

답변:


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 버전 이후에는이 쿼리가 작동하지 않습니다. mysql을 mysqli로 바꾸면 작동합니다.
ajay verma

32

값만 필요한 경우 :

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

2
echo mysql_result(mysql_query("SELECT count(*) from Students;"),0);하나 개의 불필요한 변수를 절약
최대 소집

옳은; 내 대답은 질문에 맞게 조정되었습니다.
bmaupin

4
@eichertc PHP 인터프리터는 항상 내부 변수를 가지고 있습니다. 그 결과 메모리에 어떤 식 으로든 결과가 있어야하기 때문입니다. 그래서 당신의 방식은 IMHO를 읽고 유지하기 위해 코드를 더 악화시킵니다.

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

이 코드를 사용해보십시오.


10

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->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(*)'];
Typewar에게

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

이것의 카운트에서 question1 열의 발생 횟수, 그 작업은 완전히


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

이 경우 종료 echo 문은 다음을 반환합니다.

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;

루프를 작성할 필요가 없기 때문입니다. 코드 전용 답변을 게시하지 마십시오. 모든 답변은 간단하더라도 설명 할 가치가 있습니다. 특히 이와 같이 오버로드 된 페이지에서는 조언과 다른 답변의 장점을 설명해야합니다.
mickmackusa

이 옵션이 어떤면에서는 최적이 아니더라도 작동한다면 누군가 문제를 해결하는 데 도움이 될 수 있다고 생각합니다. 저의 경우 '우수 답변'으로 표시되지 않은 답변에서 저에게 적합한 답변과 아이디어를 자주 찾습니다. 그리고 때때로 그러한 "이상한 해결책"은 착취되는 아이디어의 논리를 드러냅니다. 조심해!
Yury Wallet

1
프로젝트에 대한 최선의 답을 찾으려고 노력하고 시간을 낭비 할 시간이없는 연구자들에게 공감을 가져라. 연구원들은 18 개의 매우 유사한 솔루션을 읽기를 원하지 않습니다. 그들은 가능한 한 빨리 최선의 답을 찾고 싶어합니다. mysql_이 오래된 질문이 그것을 사용하고 있더라도 아무도 더 이상 함수를 사용해서는 안됩니다 . 내 IDE에는 $numb선언되지 않을 수 있음을 나타내는 플래그가 있습니다. 루프 사용은 이미 PushkarPokharkar에 의해 수행되었지만 다시는 불필요합니다. 저는 제가 추천하지 않는 기법에 대해 반대표를 던짐으로써 연구원들을 돕기 위해 제 역할을 할 것입니다.
mickmackusa

1
이것은 당신에 대한 개인적인 공격이 아닙니다. 이것이이 게시물의 품질에 대한 나의 판단입니다.
mickmackusa

-4

개수 값만 원하는 경우 속기 :

$cnt = mysql_num_rows(mysql_query('select * from students'));
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.