我有一些代码需要获取数据库中所有表的列表,其中某列等于某个事物。但是,使用SHOW TABLES
MySQL代码只列出以空格开头的表。这是我的代码......
$result = mysql_query("SHOW FULL TABLES IN `db`") or die("Error: " . mysql_error());
while ($word = mysql_fetch_array($result)) {
$word = $word[0];
$sql = "SELECT * FROM `db`.`$word` WHERE col='$val'";
$result = mysql_query($sql, $con) or die("Error: " . mysql_error());
while ($col = mysql_fetch_array($result)) echo "<li><a nav='$word' title='View $word'>$word</a></li>";
}
出于某种原因,第一个mysql_query()
只返回一个结果,恰好是一个以空格开头的表。 (这是唯一以整个空间开头的桌子)
编辑:我刚刚意识到我遗漏了将$ word从数组转换为字符串的代码行...现在就在那里。
答案 0 :(得分:2)
你在循环中覆盖$ result(你的表列表)。
第一次迭代后,$ result将包含第一个表中的字段列表。