我有这个查询:SHOW COLUMNS FROM mash
它在我的 while 循环中运行良好,用于构建由表列名称组成的选择元素。但是在我的表中,我在 select 元素中有我不想要的“id”和“tstamp”,是否可以排除这些列?
echo "<form action='".$_SERVER['PHP_SELF']."' method='get'>";
connectDB();
$result = mysql_query("SHOW COLUMNS FROM mash") or die(mysql_error());
echo '<select name="column" class="column">';
while ($row = mysql_fetch_array($result)) {
echo "<option value='".$row[0]."'>".ucwords($row[0])."</option>";
}
closeConn();
echo '</select>';
echo "</form>";
最佳答案
PHP 方式:
使用 continue
在 while 循环中,当获取这些字段时,如下所示:
echo "<form action='".$_SERVER['PHP_SELF']."' method='get'>";
connectDB();
$result = mysql_query("SHOW COLUMNS FROM mash") or die(mysql_error());
echo '<select name="column" class="column">';
while ($row = mysql_fetch_array($result))
{
if($row[0] == 'id' || $row[0] == 'tstamp')
continue;
echo "<option value='".$row[0]."'>".ucwords($row[0])."</option>";
}
closeConn();
echo '</select>';
echo "</form>";
这将跳过 id
和 tstamp
字段并处理所有其他字段。 continue
在循环结构中使用以跳过当前循环迭代的其余部分并在条件评估处继续执行,然后在下一次迭代开始时继续执行。
MySQL方式:
像这样删除查询中的那些字段:
SHOW COLUMNS FROM mash WHERE Field NOT IN ('id', 'tstamp');
关于php - 从 SHOW COLUMNS mysql 中排除某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759111/