Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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,更新:谢谢大家的帮助,整个代码都在文本的底部,带有巴西葡萄牙语 我如何准确地以相反的顺序显示表中的信息(使用PHP) 例如,假设我有一个表,其中一个自动递增的id列作为主键,一个name列: id:1名称:Cris id:2名称:Elen id:3姓名:Bob id:4姓名:Lian 我需要在页面中显示它,如下所示: id:4姓名:Lian id:3姓名:Bob id:2名称:Elen id:1姓名:Cris 这段代码只以正常的顺序显示它们,到目前为止它是有效的,但它并不完全是我所需要的 PS:

更新:谢谢大家的帮助,整个代码都在文本的底部,带有巴西葡萄牙语

我如何准确地以相反的顺序显示表中的信息(使用PHP)

例如,假设我有一个表,其中一个自动递增的
id
列作为主键,一个
name
列:

id:1名称:Cris
id:2名称:Elen
id:3姓名:Bob
id:4姓名:Lian

我需要在页面中显示它,如下所示:

id:4姓名:Lian
id:3姓名:Bob
id:2名称:Elen
id:1姓名:Cris

这段代码只以正常的顺序显示它们,到目前为止它是有效的,但它并不完全是我所需要的

PS:我使用
$result
$rows
来计算我有多少行,并尝试在
for
函数中使用它,但它不起作用

<?php 
    $conect = mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("Noticias", $conect) or die(mysql_error());

    $result = mysql_query("SELECT * FROM titulos", $conect);
    $totalrows = mysql_num_rows($result);

    echo "$totalrows Rows test edit<br>";

    while($row = mysql_fetch_array($result)) {
    echo $row['Titulo'];
    echo "<br>";
    }
    for($i=$totalrows;$i>=0;$i-1){
       $_Str ="SELECT Titulo FROM titulos WHERE id_Noticia=".$i."";
       $show = mysql_query($_Str, $conect);
       echo $show['Titulo']."<br>";
    }
?>

好吧,你们解决了我的问题,所以这只是公平的,以显示我正在试图做什么

我试图获得相反的顺序,因为我想创建一个保存博客标题及其内容的页面(作为练习)

我需要它以相反的顺序显示博客文章,这样用户就可以从最新到最旧地查看它们

我还必须使每个博客标题都用作博客文章的链接(现在它只提供了对完全相同的链接的引用,我正在处理)

它还有一点HTML,只是为了创建一个显示帖子链接的区域,它最多显示12个博客链接(同一行中有3篇帖子,然后跳到下一行),如果一篇博客帖子太大(超过90像素),它会用圆点覆盖其余链接(标题)

再说一次,对不起,我的英语不好,我已经不练习了

 <?php
 //coneção com o banco de dados onde os dados das nopticias estão salvos
 $conect = mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("Noticias", $conect) or die(mysql_error());

    //Calcula quantas noticias existem salvas no banco de dados, pdoe ser usado 
    //quando o usuario quiser ver todas as noticias
    $result = mysql_query("SELECT * FROM titulos", $conect);
    $totalrows = mysql_num_rows($result);

    //ordena as noticias em ordem decrecente(da mais nova para a mais velha)
    //e salva em um array
    $result2 = mysql_query("SELECT * FROM titulos ORDER BY id_Noticia DESC", $conect);
    $lista = array(); 
    while($row= mysql_fetch_array($result2)) {
    $lista[].=$row['Titulo'];
    }
    //variaveis para manipular quantas noticias aparecerão
    $a=0;
    $b=0;
   ?>
   <html>
    <head>
    <title>Painel de Noticias!!!</title>
    <style>
        //cria a area onde os titulos aparecerão
        .boxed {
        border: 2px solid green ;
        width: 300px;

        }
        //encobre com pontos qualquer parte do titulo que ultrapasse mais de 90 pixels
        .espaco90 {
        width: 90px; 
        float: left;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        }
        </style>
         </head>
         <body>

          <div class="boxed" >
           <p>
            <?php
             //seleciona os titulos e aplica um link para eles, aqui falta um meio de determinar os links para cada
      //titulo existente no banco de dados, más como isso 
       //será usado em conjunto com o wolrd press então eu creio 
       //que não seja necessário aha não ser que você queira
         for($i=0;$i<=$totalrows-1;$i++){
        echo "<div class='espaco90'><a href='http://www.w3schools.com'>".$lista[$i]."</a></div></p><p>";

        $a=$a+1;
        $b=$b+1;
        if($b<12){
        if($a>=3){
            echo "<br>";
            $a=$a-3;
        }
        }else{
            echo"<br>";
            break;
        }
        }
        ?> </p>
        </div>

        </body>
       </html>

通知单!!!
//cria a地区位于提托洛斯公寓区
.盒装{
边框:2倍纯绿;
宽度:300px;
}
//在90像素的情况下,我们需要一个超级通道
埃斯帕科先生90{
宽度:90px;
浮动:左;
溢出:隐藏;
文本溢出:省略号;
空白:nowrap;
}


这应该以相反的顺序获取项目

$_Str ="SELECT Titulo FROM titulos WHERE ORDER BY id_Noticia DESC "; 
$show = mysql_query($_Str, $conect); 
for($i=0; $i<$totalrows; $i+1) { 
    echo $show[i]['Titulo']."<br>";
}
$\u Str=“从titulos中选择Titulo,其中订单按id\u Noticia DESC排序”;
$show=mysql\u查询($\u Str,$conect);
对于($i=0;$i请尝试以下方法:

$result = mysql_query("SELECT * FROM titulos ORDER BY id_Noticia DESC", $conect);
您可以通过…DESC了解有关排序的信息。

您可以在将数据获取到数据结构后使用array\u reverse()函数。以下是array\u reverse函数的一个实现:

<?php
$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));
?>


有关更多信息,请访问链接:

只需在查询中添加一个
ORDER BY
子句

SELECT * FROM titulos ORDER BY id_Noticia DESC
                      ^^^^^^^^^^^^^^^^^^^^^^^^
MySQL将按指定的顺序返回行。(关键字
DESC
表示按降序返回行,首先返回最高值。)

摆脱
for
循环及其内容。
while(fetch)
是正确的模式



注意:PHPmysql\uu接口已被弃用。新开发应使用PDOmysqli接口。

使用
ORDER BY
告诉mysql要按哪个列排序,并使用
DESC
反转顺序……
从titulos ORDER BY id DESC中选择*>正如Travesty3所说,使用ORDER BY。您总是可以在获得数据后对其进行排序,但最好的做法是让SQL查询尽可能地完成工作。SQL为此进行了优化,并且您不太可能做出愚蠢的错误,把事情搞得一团糟(就像所有程序员在某个时候所做的那样。grin)只需在第一个查询中添加一个
orderbyid DESC
子句。整个
for
循环看起来是错误的。它似乎完全没有必要,而且效率非常低(为每个
id\u Noticia
值运行一个单独的查询。而且我们通常不能保证
id\u Noticia
列中的值是连续的整数值;该
for
循环的设计看起来完全失败。mysql接口已被弃用;您应该在新开发中使用PDO或mysqlielopment。我并不真的同意@KathyA。在表示层进行这种基本的显示排序是可以的。如果你能让客户端服务器为你排序,那就更好了!@草莓:定义了适当的索引,MySQL可以以比客户端排序更高效的顺序返回结果。(MySQL可以使用索引来避免“排序”操作,它将使用预先排序的索引来检索并按指定顺序返回行。)它不起作用,也许我应该更改for语句中的一些内容使用select语句并从循环中查询
$\u Str=“select Titulo FROM titulos WHERE order BY id\u Noticia DESC”;$show=mysql\u查询($\u Str,$conect);for($i=0$i@LIUFA:这应该使用
while fetch
循环;而不是
for
循环。