【发布时间】:2014-10-09 12:20:11
【问题描述】:
我的表 MYTABLE 包含以下字段:ID、PASSWORD、COL1、COL2、COL3、DATE 我想获取并显示 html 表中的所有记录,但跳过 ID 和 PASSWORD 字段... 我正在使用以下不起作用的代码:
$query = "SELECT * FROM MYTABLE WHERE 1";
$results = mysql_query($query, $conn) or die(mysql_error());
echo "<tr>";
while ($r = mysql_fetch_assoc($results)) {
foreach ($r as $item) {
// let's not display ID and password
if ($r == 'ID' || $r == 'PASSWORD') continue; // this is the line that I want to figure out
echo "<td>$item</td>";
} // end for loop
} // end while
unset($item);
echo "</tr>";
显然有不止一种方法可以做到这一点,例如我可以用 for 循环替换 foreach 循环:
for ($i=0;$i<=6;$i++) {
if ($i == 0 || $i == 1 ) continue;
echo "<td>$r[$i]</td>";
} // end for
这将跳过 ID 和 PASSWORD 字段,但我不想使用它,因为我在多个表上运行代码(表名是从 html 选择标记中获取的)并且这些表可能不一样字段/列的数量(但它们总是有 ID 和密码)。
我也可以使用 SQL 语句(我不想这样做),但是我必须查询临时文件,删除 ID、PASSWORD 列,然后从临时表中获取。 (顺便说一句,为什么我应该用 SQL 而不是 PHP 来做这件事,有一个令人信服的理由吗?)
【问题讨论】:
-
为什么不能只使用“从 MYTABLE 中选择 COL1、COL2、COL3、DATE”?
-
因为他很伤心:“这将跳过 ID 和 PASSWORD 字段但我不想使用它,因为我在多个表上运行代码(表名是从 html select标签)"
标签: php mysql foreach field skip