返回的数据顺序不正确

时间:2015-02-10 07:49:15

标签: php jquery mysql

我有一个MySQL数据:

MySql Data

我尝试使用jquery获取它们:

         $.post(
            '../php/teacheradminfunction.php',
            {'functions':'getBadgeImg','topicSkill':$('#selTeachAdminBadgeDeleteSkill').val()},
            function(data) {
                $.each(data, function( key, value ) {
                    alert( key + ": " + value.badge_path );
                });
            },'JSON'
        );

我的PHP脚本:

$queryStmt = 'SELECT badge_path FROM badges WHERE badge_skill=:sqlSkill ORDER BY `index` ASC';
        $queryPrepare = $dba_connect->prepare($queryStmt);
        $queryPrepare->execute(array(':sqlSkill'=>$_POST['topicSkill']));
        $queryResult = $queryPrepare->fetchAll(PDO::FETCH_ASSOC);
        $queryPrepare->closeCursor();

        echo json_encode($queryResult);

我的问题是我需要有正确的订单,我得到的是:

[{"badge_path":"..\\image\\badges\\Counting10_g.png"},{"badge_path":"..\\image\\badges\\Counting10_b.png"},{"badge_path":"..\\image\\badges\\Counting10_s.png"}]

预期结果:

[{"badge_path":"..\\image\\badges\\Counting10_g.png"},{"badge_path":"..\\image\\badges\\Counting10_s.png"},{"badge_path":"..\\image\\badges\\Counting10_b.png"}]

3 个答案:

答案 0 :(得分:-1)

您也可以选择索引或“badge_rank”并将其用作键:值作为JSON而不是对象数组。

最简单的方法是将badge_path的索引更改为正确的顺序。

  1. 金,
  2. 银,
  3. 青铜

答案 1 :(得分:-1)

更改数据库中的索引值 修改Counting10_s.png的索引值并使其为2 并同样更改Counting10_b.png的索引值并使其为3

由于您按索引使用顺序,因此行将根据索引值进行排序。修改索引值将为您提供所需的输出

答案 2 :(得分:-1)

在数据库中提供适当的索引。根据您的查询,它会返回正确的记录。

index    badge_rank
  1       GOLD
  2       SILVER
  3       BRONZE