PHP - 代码几乎是我想要的

时间:2009-06-17 00:11:49

标签: php mysql

以下代码回应了以下内容:

  

表名1

     

表名2

     

表名3

     

表名4“$ entry”:“votes_up for   表名4“

中的$条目

我希望它回应一下:

  

表名1:“vote_up for $ entry   在表名1“

中      

表名2:“$ _为$ entry   在表名2“

     

表名3:“$ _条目的投票   在表名3“

中      

表名4:“$ _条目的投票   在表名4“

如何更改代码以使其回显我想要的内容?

表名的数量因$ entry而异。

谢谢,

约翰

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

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";
}

2 个答案:

答案 0 :(得分:1)

没关系。

这给了我想要的东西:

$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 $table) { 
    $sql = "SELECT votes_up FROM `$table` WHERE `site` LIKE '$entry'"; 
    $sql1 = mysql_query($sql) or die("$sql:".mysql_error());
   while ($row = mysql_fetch_assoc($sql1)) {
       echo $table . ': "' . $row['votes_up'] . " for $entry from $table\"<br />";
   } 
}

答案 1 :(得分:0)

看起来您正在从多个表中选择 $ site - 您确定它们具有唯一值吗?您选择的值可能在每个表中实际上是相同的(即使每个表都有NO_DUPLICATES)。