2009-06-16 3 views
1

아래 코드는 "site"라는 열에 "$ entry"가 들어있는 "feather"라는 데이터베이스의 모든 테이블을 인쇄합니다. "깃털"의 모든 테이블에는 "사이트"라는 열이 있습니다.테이블 이름 배열에서 열 값 가져 오기

이 코드는 훌륭합니다. 그러나, 나는 뭔가를 추가하고 싶다. "깃털"의 모든 테이블에는 "votes_up"이라는 열이 있습니다. "$ entry"가있는 각 테이블에 대해 $ entries에 해당하는 "votes_up"열의 값을 인쇄하고 싶습니다. 어떻게해야합니까? 사전에

감사합니다,

$result = mysql_query("SHOW TABLES FROM feather") 
or die(mysql_error()); 

while(list($table)= mysql_fetch_row($result)) 
{ 
    $sqlA = "SELECT COUNT(*) FROM `$table` WHERE `site` LIKE '$entry'"; 
    $resA = mysql_query($sqlA) or die("$sqlA:".mysql_error()); 
    list($isThere) = mysql_fetch_row($resA); 
    if ($isThere) 
    { 
    $table_list[] = $table; 
    } 
} 



foreach($table_list as $key => $value){ 
    echo "$value <br />"; 
} 

답변

1

방법에 대한 : 모든 upvotes을 추가하고 모든 행을 계산 것

SELECT COUNT(*), sum(votes_up) FROM `$table` WHERE `site` LIKE '$entry' 

.

1

여기서는 테이블에 '항목'이 나타날 때마다 '투표 결과'를 출력한다고 가정합니다.

while(list($table)= mysql_fetch_row($result)) 
{ 
$sqlA = "SELECT `site`,votes_up FROM `$table` WHERE `site` LIKE '$entry'"; 
$resA = mysql_query($sqlA) or die("$sqlA:".mysql_error()); 
if(mysql_num_rows($resA) > 0) 
{ 
$table_list[] = $table; 
while($rowA = mysql_fetch_assoc($resA)) 
    { 
    $votes_up[$rowA["site"]] = $rowA["votes_up"]; 
    } 
} 
} 

foreach($table_list as $key => $value){ 
    echo "$value <br />"; 
} 

foreach($votes_up as $site => $vote_up) 
{ 
    echo "$site: $vote_up<br />"; 
} 
+0

안녕하세요 ... 답변 해 주셔서 감사합니다. 내가 당신의 코드를 시도하고 "if (mysql_num_rows ($ resA) > 0)"이 오류가 발생했습니다 : 구문 분석 오류 : 구문 오류, 예기치 않은 ';' –

+0

죄송합니다. '>'이 (가) '>'(으)로 변환 된 것 같습니다. '>'로 다시 변경하십시오. foreach 루프에는 각각 2 개가 있습니다. –

+0

오류 수정을 위해 코드를 편집했습니다. –

관련 문제