У меня есть таблица MYTABLE, которая содержит поля: ID, ПАРОЛЬ, COL1, COL2, COL3, DATE
Я хотел бы получить и отобразить все записи в HTML-таблице, но пропуская поля ID и ПАРОЛЯ …
Я использую следующий код, который не работает:
$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>";
Очевидно, есть более 1 способа сделать это, например, я могу заменить цикл foreach на цикл for:
for ($i=0;$i<=6;$i++) {
if ($i == 0 || $i == 1 ) continue;
echo "<td>$r[$i]</td>";
} // end for
Это пропустит поля ID и PASSWORD, но я не хочу его использовать, потому что я запускаю код для нескольких таблиц (имя таблицы выбирается из тега html select), и эти таблицы могут иметь разное количество полей. / столбцы (но они всегда будут иметь идентификатор и пароль).
Я также могу сделать это с помощью оператора SQL (я не хочу), но тогда мне придется запросить во временной переменной, удалить столбцы ID, PASSWORD и затем извлечь из временной таблицы. (кстати, есть ли веская причина, почему я ДОЛЖЕН на самом деле делать это с SQL, а не с PHP?)
Попробуй это:
$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 $key => $item) {
// let's not display ID and password
if (!in_array($key, array('PASSWORD', 'ID'))) {
echo "<td>$item</td>";
}
} // end for loop
} // end while
echo "</tr>";
foreach ($r as $k => $item) {
// let's not display ID and password
if ($k == 'ID' || $k == 'PASSWORD') continue;
echo "<td>$item</td>";
}
Это соответствует именно вашему запросу.
Я надеюсь, что этот результат сейчас полезен для вас, и после этого вы эволюционируете из него.
Я бы посоветовал вам сделать это так:
$query = "SELECT COL1, COL2, COL3, DATE FROM MYTABLE WHERE 1";
Пусть это будет легко ..
<?php
$query = "SELECT COL1, COL2, COL3, DATE FROM MYTABLE WHERE ..whatever..";
$result = mysql_query($query);
if ($result) {
while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>".$row["COL1"]."</td>";
echo "<td>".$row["COL2"]."</td>";
echo "<td>".$row["COL3"]."</td>";
echo "<td>".$row["DATA"]."</td>";
echo "<tr>";
}
}
?>