php - 从 SHOW COLUMNS mysql 中排除某些列

标签 php mysql select while-loop

我有这个查询: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>";

这将跳过 idtstamp 字段并处理所有其他字段。 continue 在循环结构中使用以跳过当前循环迭代的其余部分并在条件评估处继续执行,然后在下一次迭代开始时继续执行。


MySQL方式:

像这样删除查询中的那些字段:

SHOW COLUMNS FROM mash WHERE Field NOT IN ('id', 'tstamp');

关于php - 从 SHOW COLUMNS mysql 中排除某些列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759111/

相关文章:

php - 我的第一个基本 wordpress 插件有问题

Mysql:从600k行中快速获取50行中的10行(其余由WHERE排除)

mysql - 使用 JDBC 连接器读取 Spark 中 MySQL 表的一部分

mysql - 覆盖 MySQL UNION 中的隐含数据库?

mysql - 根据重音查找重复字段

php - 为什么 SQL SELECT 语句不检索 PHP 日历的相关日期?

PHP:在 mysql 中的字符串中搜索单词?

php - Telegram Bot 错误网关

mysql - Perl XML::Smart 内存不足!错误

mysql - 优化nodejs mysql插入