doulu7174 2019-05-27 18:05
浏览 56

MySQL,PHP:从最小到最大的回显ID

I have simple code in PHP and actual code throws all items from MySQL table with even ID and under it all items with odd ID.

And I need to all IDs with content will be listed from smallest to largest under themselves.

if( $db-> connect_error ) {
    die( "Not connected" . $db-> connect_error );
}

$sqlEven = "SELECT * FROM documents WHERE MOD (id,2)=0";
$resultEven = $db-> query($sqlEven);

if( $resultEven-> num_rows ) {
    while( $rowEven = $resultEven-> fetch_assoc() ) {
        echo $rowEven["id"] . "<li class=\"dark\"><a href=\"" . $rowEven["url"] . "\">" . $rowEven["name"] . "</a></li>";
    }
}

if( $db-> connect_error ) {
    die( "Not connected" . $db-> connect_error );
}

$sqlOdd = "SELECT * FROM documents WHERE MOD (id,2)<>0";
$resultOdd = $db-> query($sqlOdd);

if( $resultOdd-> num_rows ) {
    while( $rowOdd = $resultOdd-> fetch_assoc() ) {
        echo $rowOdd["id"] . "<li class=\"light\"><a href=\"" . $rowOdd["url"] . "\">" . $rowOdd["name"] . "</a></li>";
    }
}
  • 写回答

1条回答 默认 最新

  • duanrang9348 2019-05-27 18:35
    关注

    You can reduce this to one query and check in PHP if the number is even or odd. Using a ternary operator, it can be done inline. Using ORDER BY MOD(id, 2), id (sort by even first, then ascending order), you get the data sorted by even and odd (see live fiddle: http://sqlfiddle.com/#!9/af25e5/2).

    This way, you only need one query and one loop.

    if ($db->connect_error) {
        die("Not connected: " . $db->connect_error);
    }
    
    $sql = "SELECT * FROM documents ORDER BY MOD(id, 2), id";
    $result = $db->query($sql);
    
    if ($result->num_rows) {
        while ($row = $result->fetch_assoc()) {
            echo $row["id"] . '<li class="'.($row['id'] % 2 == 0 ? 'dark' : 'light').'"><a href="'.$row["url"].'">'.$row["name"]."</a></li>";
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计