我在数据库中有一个表。当我在网址中输入.../array.php?id=1
时,它会突出显示该行。如果我放入id=2
,则会突出显示第2行。
到目前为止,这是我的代码:
<?php
function connect(){
// Make a MySQL Connection
$link = mysqli_connect("localhost", "root", "", "school") or die(mysqli_error());
return $link;
}
if ($_GET)
{
if(isset($_GET["id"])) $id = $_GET["id"];
}
// select query
$query = "SELECT * FROM graden" ;
if (isset($id)) { $query.= " WHERE id = $id "; }
$result = mysqli_query(connect(),$query);
// table making
$table = "<table border='1'>";
$table .= "<tr>
<th> ID </th>
<th>Graden Celcius</th>
<th>Aanduiding</th>
<th>Image</th>
</tr>";
// keeps getting the next row until there are no more to get
while($row = mysqli_fetch_assoc( $result )) {
// Print out the contents of each row into a table
foreach ($row as $key => $value) {
if ($key == "Image") {
$table .="<td><img src='$value' /></td>";
} elseif ($key == "temp") {
$table .="<td><a href='array.php?id=$value'>$value</a></td>";
} else {
$table .="<td>$value</td>";
}
}
$table .= "</tr>";
}
$table .="</table>";
echo $table;
?>
答案 0 :(得分:0)
您正在寻找的东西可能类似于此
while($row = mysqli_fetch_assoc( $result )) {
// Print out the contents of each row into a table
$table .="<tr ".($_GET["id"] == $row["id"]?" style='background-color:yellow'":"").">";
foreach ($row as $key => $value)
{
if ($key == "Image")
{
$table .="<td><img src='$value' /></td>";
}
elseif ($key == "temp")
{
$table .="<td><a href='array.php?id=$value'>$value</a></td>";
}
else
{
$table .="<td>$value</td>";
}
}
$table .= "</tr>";
}
这使用三元if基于行的id是否与提供的查询参数匹配来有条件地设置表的style属性。
答案 1 :(得分:0)
如果您使用
将ID条件添加到查询中if (isset($id)) $query.= " WHERE id = $id ";
那么你的表中只有那一行。因此,如果您不想过滤,而是要突出显示该行,我建议不要将ID放在查询中,但要检查在您打印表行的循环内的相等性,以及该行是否具有相应的ID ,给它上色吧。 此外,您还错过了行中的TR标记。 您的突出显示代码可能是这样的:
while($row = mysqli_fetch_assoc( $result )) {
$table .= '<tr';
if ($row['id'] === $id)
$table .= 'style="background-color: #ff4444;"';
$table .= '>';
// rest of your code ....
}