2012-08-09 5 views
0

더 나은 방법으로 어떻게이 작업을 수행 할 수 있습니까?배열을 사용하여 문자열 루프를 수행하려면 어떻게해야합니까?

$query = mysql_query("SELECT * FROM table WHERE region='example1'"); 
$num_rows_example1 = mysql_num_rows($query);  

$query = mysql_query("SELECT * FROM table WHERE region='example2'"); 
$num_rows_example2 = mysql_num_rows($query);  

$query = mysql_query("SELECT * FROM table WHERE region='example3'"); 
$num_rows_example3 = mysql_num_rows($query);  

어쩌면 배열과 Foreach가 있습니까?

감사합니다.

+1

귀하의 질문에 대답하는 데 도움이되지 않을 수도 있지만 mysql_ * 기능 사용을 중단해야합니다. 그들은 더 이상 사용하지 않을 것입니다. 대신 [PDO] (http://php.net/manual/en/book.pdo.php) (PHP 5.1 이상 지원) 또는 [mysqli] (http://php.net/manual/en/book)를 사용하십시오. mysqli.php) (PHP 4.1부터 지원). 어느 것을 사용해야할지 잘 모르겠다면 [이 SO 기사를 읽으십시오] (http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons). – Matt

+0

"더 좋은 방법"은 무엇을 의미합니까? 하나의 쿼리에서만 의미가 있습니까? – Tchoupi

+0

가능하다면 가능합니다. –

답변

3

귀하의 질의는

SELECT region, count(*) as num_regions FROM table GROUP BY region 

수 그리고 지금은 각 지역에 대한 행의 수를 반환 수행 할 수있는 하나 개의 쿼리를 가지고!

이제 당신은 mysql_* 기능 사용을 중지해야을 참고하시기 바랍니다

$regions = array('example1', 'example2', 'example3'); 

foreach ($regions as $region) { 
    // do something with the MySQL result 
} 

의 배열을 사용하여 일부 PHP 마법을 수행 할 수 있습니다. 그들은 더 이상 사용하지 않을 것입니다. 대신 PDO (PHP 5.1 이상 지원) 또는 mysqli (PHP 4.1 이상 지원)을 사용하십시오. 어느 것을 사용해야하는지 잘 모르는 경우 read this SO article. 무엇보다도

+0

매트 감사하지만 내 테이블에 모든 지역이 없습니다. "region1"이 2 행이거나 "region2"가 0 행인 경우 계산하고 싶습니다 ... –

+0

이렇게하면됩니다. mysql 결과에 해당 영역이 있는지 확인하면됩니다. 그렇지 않은 경우 카운트가 0임을 알 수 있습니다. – Matt

+0

예! 네가 옳아. 고맙습니다! 그리고 mysqli에 대해 알게 될 것입니다! –

0

첫 번째와는 :

하십시오, 새로운 코드를 작성하는 mysql_* 기능을 사용하지 마십시오. 그들은 더 이상 유지되지 않으며 공동체는 deprecation process으로 시작되었습니다. red box을 참조하십시오. 대신 prepared statements에 대해 알아야하고 PDO 또는 MySQLi을 사용해야합니다. 결정할 수없는 경우 this article가 도움이 될 것입니다. PDO를 선택하면 here is good tutorial입니다.

이제이 방해가 있다는 :

$query = "SELECT `region`, count(*) AS `count` FROM `table` GROUP BY `region`"; 
+1

@sixeightzero'$ num_rows_example3 = mysql_num_rows ($ query);', OP ... 코드 읽기! – orourkek

1
$query = mysql_query("SELECT region, COUNT(region) AS count FROM table GROUP BY region"); 

while($row = mysql_fetch_assoc($query)) { 
    ${$row[region]} = $row[count]; 
} 

당신이 echo $example1;은 그 지역의 수를 생성합니다.

관련 문제