MySQL PHP查询中的奇怪数据问题

时间:2016-09-12 01:27:27

标签: php mysql

我在PHP文件中进行查询,如下所示。我得到的数据但不完整。我在mysql中有大约91条记录,但是当我在查询中添加标签列时,我只得到大约80条记录,当我在查询中添加url列时,它会获得大约50条记录。

我称之为奇怪,因为只要我从数据库中的Label列中删除一些内容,我就会看到80到83条记录。

$sql = "SELECT title, GROUP_CONCAT(title,'|', label,'|', id,'|', grp  SEPARATOR ';') prods FROM docLibrary3 GROUP BY title ";

while($row = mysqli_fetch_array($query)){

 $prods = explode(';',$row['prods']);
 echo '----'.$idx.'----<br>';

 foreach ($prods as $key => $value) {
   $expValue = explode('|',$value);
   echo $expValue[2].":: ".$expValue[3]."<br>";
 };

 $idx++;
};

这里看起来如何

----16----
58:: 08
59:: 09
60:: 11
61:: 12
62:: 15
63:: 02
64:: 1
65:: 13
57:: 07
56:: 06
48:: 02,11
49:: 01,12
50:: 12
51:: 01,12,15
52:: 013
53:: 02,11
54:: 01
:: 
----17----
75:: 01,02,07,08,11,12,13,15
74:: 02,07
73:: 09,10
72:: 11
71:: 02,06,08
70:: 01,02,11,12,13,15
69:: 01,02,11,12,13,16
68:: 01,02,11,12,13,15
67:: 01,02,11,12,13,15
66:: 01,02,11,12,13,15
----18----
85:: 01,02,11,12,13,15
86:: 01,02,11,12,13,15
87:: 01,02,11,12,15
88:: 03,04
89:: 03,04
90:: 01,06,07,08
84:: 01,02,11,12,13,15
83:: 01,02,11,12,15
82:: 01,02,11,12,13,15
:: 

55和91记录不打印,但如果我从任何记录中删除标签栏中的某些内容,则55和91记录中会显示一些字符。首先,我可能会有一些特殊的字符问题,但后来发现它不是。当我在查询中添加url列时,它就变成了经文。

即使我在查询中添加ORDER BY id,也不确定为什么记录不按id列排序。

更新: 这是构建嵌套数组和打印json的代码 - 工作正常,但缺少数据。我认为在foreach循环中会发生一些事情,或者可能在数据表中

    $rows = array();
$idx = 0; 

  $sql = "SELECT title, GROUP_CONCAT(title,'|', label,'|', id,'|', grp,'|', url  SEPARATOR ';') prods FROM docLibrary3 GROUP BY title ";

  $query = mysqli_query($con, $sql); 

  while($row = mysqli_fetch_array($query)){
           $prods = explode(';',$row['prods']);
          foreach ($prods as $key => $value) {

            $expValue = explode('|',$value);
            echo $expValue[0].":: ".$expValue[3]."<br>";

            $rows[$idx]['title'] = $expValue[0];
            $rows[$idx]['subList'][] = array('label' => $expValue[1], 'url' => $expValue[2], 'grp' => $expValue[3]);

          };

          $idx++;
      };
  $siteData['list'] = $rows;
  var_export($rows, true);
  header('Content-Type: application/json');
  echo json_encode($siteData, JSON_PRETTY_PRINT);

更新2: 试图设置group_concat_max_len,但那也不行

$sql = "SET SESSION group_concat_max_len=3423543543"
  ."SELECT title, GROUP_CONCAT(title,'|', label,'|', id,'|', grp,'|', url  SEPARATOR ';') prods FROM docLibrary3 GROUP BY title ";

0 个答案:

没有答案