php - 数据库中表中文本旁边的标志图标
问题描述
我做了一个向数据库添加记录的表单,它显示在 HTML 表中。表格和数据库中的一列是“国家”。我想在“国家”列旁边插入一个右旗图标,我想从表格中制作它。我添加了示例照片
你能帮我出主意吗?
形式
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style2.css">
</head>
<body>
<?php
if (isset($_GET["date"]) ){
$date = $_GET["date"];
$country = $_GET["country"];
$city = $_GET["city"];
$place = $_GET["place"];
if( empty ( $date ) || empty ($country) || empty ($city) || empty ($place)){
echo "Wypelnij wszystkie pola";
} else {
$conn = new mysqli("localhost", "root", "", "tour");
$odp = $conn->query("INSERT INTO trasy (date, country, city, place)
VALUES ('$date', '$country', '$city', '$place')");
header("Location: index5.php");
if ($odp) {
echo "Dodano koncert";
}else{
echo "Nie udalo sie dodac";
}
$conn->close();
}
}
?>
<div id="login">
<form method="GET" action="index5.php">
<table id="customers">
<input name="date" type="date" placeholder="Date..."><br>
<input name="country" type="text" placeholder="Country..."><br>
<input name="city" type="text" placeholder="City..."><br>
<input name="place" type="text" placeholder="Place..."><br>
<input type="submit" value="OK">
</table>
</form>
</div>
</body>
</html>
HTML 表格
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style3.css">
</head>
<body>
<table id="customers">
<tr>
<th>Date</th>
<th>Country</th>
<th>City</th>
<th>Place</th>
<th>Info</th>
</tr>
<?php
$conn = new mysqli("localhost", "root", "", "tour")
or die ("Błąd");
$wynik = $conn->query("SELECT * FROM trasy ORDER BY date DESC");
if ($wynik->num_rows > 0){
while ( $wiersz = $wynik->fetch_assoc() ){
echo "<tr>";
echo "<td>" . $wiersz["date"] . "</td>";
echo "<td>" . $wiersz["country"] . "</td>";
echo "<td>" . $wiersz["city"] . "</td>";
echo "<td>" . $wiersz["place"] . "</td>";
echo "<td>" . $wiersz["info"] . "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "Nic tu nie ma";
}
$conn->close();
?>
</table>
</body>
</html>
解决方案
我将只解决您的问题,但请记住,您的代码从 security 开始存在各种错误。
我只会为您指明我认为最适合您的方向。
首先将所有标志上传到服务器上的一个目录中。你可以使用 img 或者你可以使用CSS svg ,例如这个。
其次,根本不要让人们在输入字段中输入国家(这样可以确保同一个国家的值是相同的),将其设置为预先填充所有国家的下拉列表并为每个国家分配一个值。
我提供链接的 CSS 图标的值示例:如果用户从下拉列表中选择德国,则您存储在国家/地区字段值中:gr。
这样,当您致电您的国家/地区时,您可以这样做:
echo '<td><span class="flag-icon flag-icon-' . $wiersz["country"] . '"></span></td>';
将为德国生产:
<td><span class="flag-icon flag-icon-gr"></span></td>
你可以用HTML img 标签做同样的事情。只需将标志值存储为 img src。
我相信这是最好的方法。其他你需要有大量的PHP switch 语句。
编辑: 此外,如果您希望将国家/地区名称和标志都存储为选择中的值并在数据库输入中将其分开并将其存储在如下两列中:
<select id="country">
<option value="Croatia | hr">Croatia</option>
<option value="Germany | gr">Germany</option>
<select>
$country = mysqli_real_escape_string($_GET['country']);
$pieces = explode(" | ", $country);
$countryname = $pieces[0]; // piece1
$flag = $pieces[1]; // piece2
推荐阅读
- javascript - 在反应组件/随机数中使用useState随机更改两个div的状态
- opentok - Tokbox Publisher 成为网络订阅者
- java - 为什么 logback 有时会输出额外的空行
- acumatica - 数据视图不使用投影 DAC 刷新
- javascript - 在 jQuery 中启用和禁用空格键
- flutter - 如何在颤动的谷歌地图中添加多个标记
- sql - 使用 sysdate 时如何在查询中搜索日期
- r - 确定点位于哪个多边形中
- anaconda - 无法在 Jupyter Notebook 上安装 fastai
- javascript - stripe - 不能对新的 paymentIntents 使用相同的支付方式