PHP/MySQL从数据库中移出一个表,但从表中排除一个字段


PHP/MySQL outing a table from the data base but excluding a field from a table?

我有一个表单,允许用户设置表中数据的排序方式,以及它是按的升序还是降序

http://damiensplace.co.uk/test/requestTableDisplay.htm

然而,我希望用户选择排除字段(年龄等级)形式设置变量,但我一直在绞尽脑汁如何做到这一点,但我想出的唯一方法并不整洁,因为我基本上需要写两堆代码,我错过了一个技巧吗?

<html><head><title>MySQL Table Viewer</title></head><body>
<?php
$db_host = '****';
$db_user = '***';
$db_pwd = '***';
$sortOn = $_POST['SortOn'];
$sortIn = $_POST['SortIn'];
$database = '****';
$table = '***';
if (!mysql_connect($db_host, $db_user, $db_pwd))
    die("Can't connect to database");
if (!mysql_select_db($database))
    die("Can't select database");
// sending query
$result = mysql_query("SELECT * FROM {$table} order by {$sortOn} {$sortIn}");
if (!$result) {
    die("Query to show fields from table failed");
}
$fields_num = mysql_num_fields($result);
echo "<h1>Table: {$table}</h1>";
echo "<table border='1'><tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
    $field = mysql_fetch_field($result);
    echo "<td>{$field->name}</td>";
}
echo "</tr>'n";
// printing table rows
while($row = mysql_fetch_row($result))
{
    echo "<tr>";
    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    foreach($row as $cell)
        echo "<td>$cell</td>";
    echo "</tr>'n";
}
mysql_free_result($result);
?>
</body></html>

如果有人能给我指明正确的方向,我将非常感谢

非常简单。不运行此查询:

SELECT * FROM {$table} order by {$sortOn} {$sortIn}

运行这个:

"SELECT hats, cats, margarine FROM {$table} order by {$sortOn} {$sortIn}

其中hatscatsmargarine将由表中的字段替换。您可以通过这种方式指定任意数量的字段,甚至可以只获取一个字段。

您应该有如下查询:

SELECT (columns) FROM (table)

不要全选,您似乎只需要特定的列。