如何使用PHP和MySQL将固定位置的行值添加到数组中

如何使用PHP和MySQL将固定位置的行值添加到数组中,php,mysql,arrays,Php,Mysql,Arrays,我需要使用PHP和MySQL在数组的底部位置保留表中的一行值。这是我的桌子: db_名称: id name 1 aaa 2 bbbb 3 Other 4 tttt 我的问题如下: $sqldeg=mysqli_query($connect,"select * from db_designation order by id desc"); while ($row=mysqli_fetch_array($sqldeg)) {

我需要使用PHP和MySQL在数组的底部位置保留表中的一行值。这是我的桌子:

db_名称:

id      name

1       aaa

2       bbbb

3       Other

4       tttt
我的问题如下:

$sqldeg=mysqli_query($connect,"select * from db_designation order by id desc");
while ($row=mysqli_fetch_array($sqldeg)) {
            $desdata[]=array("did"=>$row['id'],"dname"=>$row['name']);
}

这里我需要这个
id->3 name->Other
表中的行值总是排在数组
的最后,即-$desdata

您可以在查询时完成,在使用php之前进行排序

按id:

ORDER BY (CASE WHEN `id`=3 THEN 1 ELSE 0 END) ASC, `id` DESC
或按姓名:

ORDER BY (CASE WHEN `name`='Other' THEN 1 ELSE 0 END) ASC, `id` DESC
id
name
匹配时,将追加1,否则为零(0),并按升序排序

所以你的问题是:

$sqldeg=mysqli_query($connect,"select * from db_designation ORDER BY (CASE WHEN `id`=3 THEN 1 ELSE 0 END) ASC, `id` DESC");
while ($row=mysqli_fetch_array($sqldeg)) {
            $desdata[]=array("did"=>$row['id'],"dname"=>$row['name']);
}

您可以在查询时执行此操作,在使用php之前进行排序

按id:

ORDER BY (CASE WHEN `id`=3 THEN 1 ELSE 0 END) ASC, `id` DESC
或按姓名:

ORDER BY (CASE WHEN `name`='Other' THEN 1 ELSE 0 END) ASC, `id` DESC
id
name
匹配时,将追加1,否则为零(0),并按升序排序

所以你的问题是:

$sqldeg=mysqli_query($connect,"select * from db_designation ORDER BY (CASE WHEN `id`=3 THEN 1 ELSE 0 END) ASC, `id` DESC");
while ($row=mysqli_fetch_array($sqldeg)) {
            $desdata[]=array("did"=>$row['id'],"dname"=>$row['name']);
}
你喜欢这样吗

$others='';
$sqldeg=mysqli_query($connect,"select * from db_designation order by id desc");
while ($row=mysqli_fetch_array($sqldeg)) {
    if(strpos($row['name'], 'Other')===false)
        $desdata[]=array("did"=>$row['id'],"dname"=>$row['name']);
    else
        $others=array("did"=>$row['id'],"dname"=>$row['name']);
}
$desdata[]=$others;
你喜欢这样吗

$others='';
$sqldeg=mysqli_query($connect,"select * from db_designation order by id desc");
while ($row=mysqli_fetch_array($sqldeg)) {
    if(strpos($row['name'], 'Other')===false)
        $desdata[]=array("did"=>$row['id'],"dname"=>$row['name']);
    else
        $others=array("did"=>$row['id'],"dname"=>$row['name']);
}
$desdata[]=$others;

我建议您在表中需要另一个名为Sequence或SortOrder或其他的字段,并在查询中按该字段排序。我同意ADyson的观点,即您的数据模型不能充分描述您的数据,但应根据您需要此记录最后出现的原因或它应该最后出现的事实来命名,不是根据实现结果的方法。我建议您需要表中另一个名为Sequence或SortOrder或其他的字段,我同意ADyson的观点,即您的数据模型不能充分描述您的数据,但应根据您需要此记录最后出现的原因或它应该最后出现的事实来命名,而不是根据实现结果的方法。