首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL :回显ID从最小到最大

MySQL :回显ID从最小到最大
EN

Stack Overflow用户
提问于 2019-05-28 02:05:33
回答 1查看 40关注 0票数 0

我有简单的代码在PHP和实际代码抛出所有项目从MySQL表与偶数ID和它下面的所有项目的奇数ID。

我需要所有的ID与内容将列出从最小到最大下自己。

代码语言:javascript
复制
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>";
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-05-28 02:35:27

您可以将其简化为一个查询,并在PHP中检查该数字是否为偶数或奇数。使用三元运算符,它可以内联完成。使用ORDER BY MOD(id, 2), id (首先按偶数排序,然后按升序排序),您可以获得按偶数和奇数排序的数据(请参阅live fiddle:http://sqlfiddle.com/#!9/af25e5/2)。

这样,您只需要一个查询和一个循环。

代码语言:javascript
复制
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>";
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56330639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档