代码之家  ›  专栏  ›  技术社区  ›  JABedford

有效地在无序列表中显示MySQL数据

  •  1
  • JABedford  · 技术社区  · 7 年前

    我试图在mysql中创建一个技能列表,并在index.php文件中的无序列表中逐个显示它。

    目前,我的方法如下,这给了我期望的结果(请注意:我实际上每次需要11个技能时都会调用此方法-这只是用于演示目的的数字2和3):

     <li><?php
       $sql = "SELECT * FROM skillset WHERE id = 2;";
       $result = mysqli_query($conn, $sql);
       $resultCheck = mysqli_num_rows($result);
    
       if ($resultCheck > 0) {
            while ($row = mysqli_fetch_assoc($result)) {
            echo $row[skill] . "<br>";
        }
     }?></li>
    
     <li><?php
        $sql = "SELECT * FROM skillset WHERE id = 3;";
        $result = mysqli_query($conn, $sql);
        $resultCheck = mysqli_num_rows($result);
    
        if ($resultCheck > 0) {
            while ($row = mysqli_fetch_assoc($result)) {
            echo $row[skill] . "<br>";
        }
    }?></li>
    

    我使用的方法效果很好,但显然效率不高,因为有15种个人技能。

    逻辑告诉我正确的方法是从“skillset”中选择全部,然后循环遍历数组,但这样做有困难,请继续使用此方法。

    1 回复  |  直到 7 年前
        1
  •  3
  •   symcbean    7 年前

    我建议做如下的事情(举个例子,用其他值做你喜欢做的事情)。

    $sql = "SELECT * FROM skillset WHERE id IN (1, 2, 3) ORDER BY id";
    
    $result = mysqli_query($conn, $sql);
    
    $resultCheck = mysqli_num_rows($result);
    
    if ($resultCheck > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            echo '<li>' . $row['skill'] . '<br></li>';
        }
    }
    

    BETWEEN 就像这样:

    SELECT * FROM skillset WHERE id BETWEEN 1 AND 1000
    
    推荐文章