2009-06-16 10 views
1

以下のコードは、 "site"という列に "$ entry"を含む "feather"というデータベース内のすべてのテーブルを出力します。 「フェザー」の各テーブルには「サイト」という列があります。テーブル名の配列から列値を引き出す

このコードはうまくいきます。しかし、私は何かを追加したいと思います。 「羽」の各テーブルには、「votes_up」という列も含まれています。 "$ entry"が入っているテーブルごとに、$ entryに対応する "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

これらのエラーを修正するために自分のコードを編集しました。 –

関連する問題