首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从表名数组中提取列值

从表名数组中提取列值
EN

Stack Overflow用户
提问于 2009-06-16 18:01:53
回答 2查看 140关注 0票数 1

下面的代码打印出名为"feather“的数据库中在名为”site“的列中包含"$entry”的所有表。"feather“中的每个表都有一个名为”site“的列。

这段代码运行得很好。然而,我想补充一些东西。"feather“中的每个表还包含一个名为”votes_up“的列。对于每个包含" $entry“的表,我想打印出与$entry对应的"votes_up”列的值。我该怎么做呢?

提前谢谢你,

约翰

代码语言:javascript
复制
$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 />";
}
EN

回答 2

Stack Overflow用户

发布于 2009-06-16 18:30:01

这样如何:

代码语言:javascript
复制
SELECT COUNT(*), sum(votes_up) FROM `$table` WHERE `site` LIKE '$entry'

这将把所有的票数加起来,并计算所有的行数。

票数 1
EN

Stack Overflow用户

发布于 2009-06-16 18:30:16

这假设您希望表中每次出现“entry”时都有一个“votes up”输出。

代码语言:javascript
复制
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 />";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1003021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档