2015-02-10 149 views
1

我有一个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"}] 
+1

按'order'返回正确的数据。 – 2015-02-10 07:54:08

+1

你必须在你的记录中编辑,因为你的查询结果是正确的。 – 2015-02-10 07:54:43

回答

-1

在数据库中给出正确的索引。根据您的查询,它会返回正确的记录。

index badge_rank 
    1  GOLD 
    2  SILVER 
    3  BRONZE 
+0

Downvoter帮助我改进我的答案。 – Sadikhasan 2015-02-10 08:01:58

+0

是什么让它不正确的是我插入我的数据的“如何”,我有点切换银和铜牌数据。随着你的回答,我已经意识到这一点,并作出更正。 – jaa2013 2015-02-10 08:14:57

-1

你也可以选择索引或“badge_rank”,并以此作为重点:价值JSON而不是对象的数组。

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

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

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

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

+0

为什么答案下来投票? – 2015-02-10 08:37:45