排序SQL数据库按字母顺序的链接/按钮

排序SQL数据库按字母顺序的链接/按钮

问题描述:

你好scripterfriends,排序SQL数据库按字母顺序的链接/按钮

我工作的一个项目,我需要进行排序按字母顺序排列的一行。寻找一些解决方案后,我没有找到我正在寻找的解决方案。假设我只需要以字母“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

如果某物以“F”开头,则移除“%f%”中的第一个百分号 –

+0

是fred是正确的%f%表示前面的任何内容然后是'f',那么如果使用类似命令的话后面的任何内容 – Gert

+0

单击一封信,所有的记录都已经显示在客户端?如果是这样,似乎过滤客户端会更好,因为不需要再次访问服务器。 – David

应用此查询

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

整个诀窍是这个查询里面:

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

所有你需要做的是更换fLIKE '%f%'有一个变量,你可以从POST/GET请求获取。

编辑:正如其他人提到的,您应该用f%替换您的%f%,除非您正在寻找只包含字母f的字。

+0

但是,无论如何,要使字母“A”显示一切与A和“B”与B等等。就像这样的菜单:“A | B | C | D | ...”? – DigitalDentist

+0

@DigitalDentist我不确定如果我理解正确。是否需要显示按字母顺序排序的整个表的内容?如果是这样,你将不得不运行多个查询。制作一个字符串'$ alphabet ='abcdefghijklmnopqrstuvwxyz'',然后将你的代码放入FOR循环中,以便在该字符串中的每个字符。不要忘记在每个查询之后执行'mysqli_next_result($ database);'以便您可以发送一个新的 –

+0

我已经找到了它自己;)感谢您的帮助! – DigitalDentist