2014-12-05 3 views
0

mysql에서 5 카운트 결과를 만들어야하고, 모든 결과에 대한 단축 코드가 존재할 수도 있습니다. 내 현재 코드 :mysql 수를 줄이는 방법 5 결과

$result1 = mysqli_query($con,"SELECT * FROM bets WHERE status='Waiting'"); 
$row_cnt1 = $result1->num_rows; 

$result2 = mysqli_query($con,"SELECT * FROM bets WHERE status='Win'"); 
$row_cnt2 = $result2->num_rows; 

$result3 = mysqli_query($con,"SELECT * FROM bets WHERE status='Lost'"); 
$row_cnt3 = $result3->num_rows; 

$result4 = mysqli_query($con,"SELECT * FROM bets WHERE status='Void'"); 
$row_cnt4 = $result4->num_rows; 

그리고 나는이 코드를 표시합니다

<b>Total wins:</b> <?php echo $row_cnt1;?> <br /> 
<b>Total voids:</b> <?php echo $row_cnt2;?> <br /> 
<b>Total losts:</b> <?php echo $row_cnt3;?> <br /> 
<b>Total waiting:</b> <?php echo $row_cnt4;?> <br /> 
+0

행 수를 표시하거나 표시 하시겠습니까? 'SELECT COUNT (*) ... '는 카운트를 수행합니다. –

+1

'상태 별 베팅 그룹에서 카운트 (*)를 선택 하시겠습니까? '? – putvande

+0

쿼리의 결과를 5로 제한 하시겠습니까? 왜냐하면 당신은 질의 끝에 'LIMIT 5'를 넣을 수 있기 때문이다. 아니면 내가 잘못 질문을 이해하고있다 – Darksaint2014

답변

1
$query = mysqli_query($con,"SELECT status, COUNT(*) as number FROM bets WHERE status IN ('Waiting','Win','Lost','Void') GROUP BY status"); 

하나의 쿼리에서 4 개의 행과 2 개의 열을 갖게됩니다.

참고 : 더 이상 상태가 없으면 WHERE 문은 필요하지 않습니다.

이 같은 결과를 표시 할 수 있습니다

while ($row = mysqli_fetch_assoc($query)) { 
    echo '<b>Total ' . $row['status'] . ': ' . $row['number'] . '</b><br/>'; 
} 
+1

오타가 있습니다. GROUP BY 상태를 추가하지 않았습니다. – AdamMc331

+0

왜 오류가 발생합니까? "Catchable fatal error : 클래스 mysqli_result의 객체를 문자열로 변환 할 수 없습니다 :"( '$ query = "SELECT 상태 , GROUP BY 상태 "; $ result2 = mysqli_query ($ con, $ query); ' echo $와 같은 상태에서의 IN ('기다림 ','승리 ','잃어버린 ',' result2; – Marcialoo

+0

코드를 업데이트했습니다. – zsilbi

3

당신은 만약 당신이 그룹이 같은 COUNT() 함수를 사용할 수 있어야합니다 : 그래서

SELECT status, COUNT(*) AS numForStatus 
FROM bets 
GROUP BY status; 

을 다음과 같은 표가 표시됩니다.

| status | numForStatus | 
+----------+--------------+ 
| waiting |  5  | 
| win  |  4  | 
| lost |  3  | 
| void |  2  | 

그것은 쿼리를 단순화하는 한 가지 방법이며 출력을 조금 더 쉽게 만들 수 있습니다.

+0

표시 할 PHP 코드는 무엇입니까? – Marcialoo

+1

@ user1221081 PHP로는 최고가 아니지만 질의를 단순화하여 내가 준 것입니다. – AdamMc331

0

이 코드를 사용해보십시오. SQL 쿼리에서 GROUP BY 절을 사용하고 코드를 단축하려면 while 루프를 사용합니다.

<?php 
    $qry = "SELECT COUNT(*) AS CNT, status FROM bets GROUP by status"; 
    $result1 = mysqli_query($con, $qry); 
    while($row = mysqli_fetch_array(result1, MYSQLI_ASSOC)) 
    { 

    ?> 
     <b>Total $row['status']:</b> <?php echo $row['CNT'];?> <br /> 
    <?php 
    } 
    ?> 
관련 문제