首页 > 解决方案 > 数据库中表中文本旁边的标志图标

问题描述

我做了一个向数据库添加记录的表单,它显示在 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>

标签: phpmysqldatabase

解决方案


我将只解决您的问题,但请记住,您的代码从 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   

推荐阅读