Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在无序列表中高效显示MySQL数据_Php_Mysql - Fatal编程技术网

Php 在无序列表中高效显示MySQL数据

Php 在无序列表中高效显示MySQL数据,php,mysql,Php,Mysql,我试图在MySQL中创建一个技能列表,并在index.php文件中的无序列表中逐个显示它 目前,我的方法如下,这给了我想要的结果(请注意:我实际上每次都会调用这个函数,每个技能都是11-这只是为了说明目的的数字2和3): 我使用的方法很有效,但显然效率不高,因为有15种个人技能 逻辑告诉我正确的方法是从“skillset”中选择all,然后循环遍历数组,但我在这样做时遇到了问题,并继续使用此方法。我建议按如下方式执行操作(仅在该示例中,对任何其他值执行您喜欢的操作) 是的,您可以通过使用I

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

目前,我的方法如下,这给了我想要的结果(请注意:我实际上每次都会调用这个函数,每个技能都是11-这只是为了说明目的的数字2和3):

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


    逻辑告诉我正确的方法是从“skillset”中选择all,然后循环遍历数组,但我在这样做时遇到了问题,并继续使用此方法。

    我建议按如下方式执行操作(仅在该示例中,对任何其他值执行您喜欢的操作)


    是的,您可以通过使用
    IN
    子句中的
    id IN(2,3)
    来更改该查询,就像这样,这样您只需要在一次查询中执行一次,即
    选择*FROM skillset ORDER by RAND()LIMIT 2
    ?之后,您可以根据数组的id对数组进行分组,然后是foreach和标记等等
    对不起,Islam Elshoboksh提供的打字错误修复在每个
  • 中,您需要枚举所有技能集,
  • (每个
    都有2个id技能集)
  • 等等,因此您可能需要首先对数组进行分组、获取、按id(或类别)分组,然后打印markup@Ghost我同意按id分组可能是必要的,但是,对数组进行分组是什么意思呢?您可以选择先获取数组,然后按id将其分组并放入容器(数组,ala
    $array[][]=skill
    ),然后将其显示在标记中(
    foreach with the
  • ),或者,您可以在打印标记时简单地获取和分组。SQL中的
    groupby
    不是正确的解决方案(更改为
    ORDER BY
    -更不用说将GROUP BY与
    SELECT*
    一起使用是个坏主意。感谢您的回答,我可以从逻辑上看出这是如何工作的,但是我已经在代码中实现了这一点,但是没有显示任何数据。我添加了一条带有错误消息的else语句,因此推测resultCheck即将到来返回为0。不确定为什么会发生这种情况,因为我没有更改任何其他内容。
     <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>
    
    $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>';
        }
    }
    
    SELECT * FROM skillset WHERE id BETWEEN 1 AND 1000