PHP MYSQL - 搜索和排序查询结果

时间:2017-08-19 13:50:47

标签: php mysql database

希望有人可以在这里提供帮助。

我正在创建一个网站,列出赛马技巧,这些技巧是使用PHP脚本从MySQL数据库中提取的。我设法创建了数据库,它有五列(ID,RaceDate,Location,RaceTime和Horse),我创建了一些查询RaceDate列的脚本,只显示与当前日期匹配的行。见下文:

<?php
    $db_host = 'xxxxx'; // Server Name
    $db_user = 'xxxxx'; // Username
    $db_pass = 'xxxxx'; // Password
    $db_name = 'xxxxx'; // Database Name

    $conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
        if (!$conn) {
            die ('Failed to connect to MySQL: ' . mysqli_connect_error());  
        }

    $sql = 'SELECT * FROM Horses WHERE Date(RaceDate) = Date(NOW())';
    $result = $conn->query($sql);

?>

然后我的页面上还有另一个php,它回显了屏幕上的数据,格式化在漂亮的表格中。

<?php
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            echo '<tr>
                <td>'.$row['Location'].'</td>
                <td>'.$row['RaceTime'].'</td>
                <td>'.$row['Horse'].'</td>
            </tr>';
        }
    } else {
        echo '0 results';
    }
        $conn->close();
?>

这一切都很有效,但是在一个大清单中吐出一切。我真正希望能够做的是根据比赛位置分割结果。

因此,例如,可能有5场比赛@location1,5 @ @ location2和5 @ location3。我不是一个接一个地列出15场比赛,而是将它分成3组/桌。有没有办法搜索我的查询数据的位置列并确定列出了哪些赛马场,然后将数据回显到屏幕?

e.g IF Location = Wolverhampton
        THEN echo to table 1
    ELSE IF Location = Ayr
        THEN echo to table 2
    ELSE IF Location = Llos Fas
        THEN echo to table 3
    (etc, if more Locations exist)

1 个答案:

答案 0 :(得分:0)

我的评论只是复杂的事情,这是更简单的方法。

while($row = $result->fetch_assoc()) {
     if($row['Location'] === 'location1')
     {
        echo '<tr>
            <td>'.$row['Location'].'</td>
            <td>'.$row['RaceTime'].'</td>
            <td>'.$row['Horse'].'</td>
        </tr>';
     }else if($row['Location'] === 'location2')
     {
        echo '<tr>
            <td>'.$row['Location'].'</td>
            <td>'.$row['RaceTime'].'</td>
            <td>'.$row['Horse'].'</td>
        </tr>';
     }else if($row['Location'] === 'location3')
     {
        echo '<tr>
            <td>'.$row['Location'].'</td>
            <td>'.$row['RaceTime'].'</td>
            <td>'.$row['Horse'].'</td>
        </tr>';
     }
     // And so on....
}