使用链接/按钮按字母顺序对SQL数据库进行排序

时间:2017-04-05 11:59:48

标签: php html sql alphabetical

Hello scripterfriends,

我正在开展一个项目,我需要按字母顺序对行进行排序。在寻找一些解决方案后,我找不到我想要的那个。让我们说我只需要以字母" F"开头的产品。我想要它如下图所示:https://gyazo.com/488ccc8fd2beaadbc96d687938e5a6ff

我需要能够点击F并让它只显示产品的开头是F。

我有这样的代码,但我需要更改代码以获得另一个字母。这是我到目前为止的代码:

<?php
require_once 'config.php';

try {
    $sQuery = "SELECT receptnummer, receptnaam, receptingredient, receptbereidingstijd, receptbereidingswijze, receptcategorie, receptbenodigdheden, receptserveertips, klantnummer
     FROM recept
     WHERE receptnaam LIKE '%f%' ORDER BY receptnaam";

    $oStmt = $db->prepare($sQuery);

    $oStmt->execute();

    if ($oStmt->rowCount() > 0) {
        echo '<table border="2">';
        echo '<thead>';
        echo '<td>receptnummer</td>';
        echo '<td>receptnaam</td>';
        echo '<td>receptingredient</td>';
        echo '<td>receptbereidingstijd</td>';
        echo '<td>receptbereidingswijze</td>';
        echo '<td>receptcategorie</td>';
        echo '<td>receptbenodigdheden</td>';
        echo '<td>receptserveertips</td>';
        echo '<td>klantnummer</td>';

        while ($aRow = $oStmt->fetch(PDO::FETCH_ASSOC)) {

            echo '<tr>';
            echo '<td>' . $aRow['receptnummer'] . '</td>';
            echo '<td>' . $aRow['receptnaam'] . '</td>';
            echo '<td>' . $aRow['receptingredient'] . '</td>';
            echo '<td>' . $aRow['receptbereidingstijd'] . '</td>';
            echo '<td>' . $aRow['receptbereidingswijze'] . '</td>';
            echo '<td>' . $aRow['receptcategorie'] . '</td>';
            echo '<td>' . $aRow['receptbenodigdheden'] . '</td>';
            echo '<td>' . $aRow['receptserveertips'] . '</td>';
            echo '<td>' . $aRow['klantnummer'] . '</td>';
            echo '</tr>';
        }
        echo '</table>';
    } else {
        echo 'helaas, geen gegevens gevonden';
    }

} catch (PDOException $e) {
    $sMsg = '<p>
    Regelnummer: ' . $e->getLine() . '<br/>
    Bestand: ' . $e->getFile() . '<br/>
    Foutmelding: ' . $e->getMessage() . '
</p>';

    trigger_error($sMsg);
}
$db = null;
?>

有人可以帮我解决这个问题吗?

提前致谢,

DigitalDentist

2 个答案:

答案 0 :(得分:0)

应用此查询

 $sQuery="SELECT receptnummer, receptnaam, receptingredient, receptbereidingstijd, receptbereidingswijze, receptcategorie, receptbenodigdheden, receptserveertips, klantnummer
 FROM recept
 WHERE receptnaam LIKE 'f%' ORDER BY receptnaam";

答案 1 :(得分:0)

整个技巧都在这个查询中:

$sQuery="SELECT receptnummer, receptnaam, receptingredient, receptbereidingstijd, receptbereidingswijze, receptcategorie, receptbenodigdheden, receptserveertips, klantnummer
 FROM recept
 WHERE receptnaam LIKE '%f%' ORDER BY receptnaam";

您需要做的就是将f中的LIKE '%f%'替换为一个变量,您可以从POST / GET请求中获取该变量。

修改:正如其他人提到的那样,您应该将%f%替换为f%,除非您正在寻找仅包含字母f的字词,而不仅仅是字母f。