在php中使用一个函数获得不同的结果

时间:2015-12-27 19:16:26

标签: php mysql mysqli

我的项目包含以下文件:

  1. 的index.php
  2. 功能/ query.php
  3. 功能/ index.php的
  4. 目前正在Xampp上运行。文件内容: index.php

         <?php
    require_once ("functions/query.php");
        $lojrat= lojra();
    $decode=json_decode($lojrat, true);
    foreach ($decode as $lojra) {
    
      echo $lojra['L_ID'];
    
    
    }?>
    

    功能/ query.php

    function lojra(){
        global $mysqli;
     $sql="SELECT * FROM `lojrat`";
     $result=$mysqli->query($sql);
     $json=array();
        $num=$result->num_rows;
    
     while ($row=$result->fetch_assoc()) {
           $lojrat[] = array(
        'L_ID' => $row['L_ID'],
        'L_Titulli' => $row['L_Titulli'],
        'L_indextitulli' => $row['L_indextitulli'],
        'L_fotoindex' => $row['L_fotoindex'],
        'L_Embel' => $row['L_Embel'],
        'L_cat' => $row['L_cat'],
        'L_Played' => $row['L_Played']
      );
        }
        $jsonResults = json_encode($lojrat);
    
        return $jsonResults;
    
     }
    

    functions / index.php

      <?php
    require_once("query.php");
        $lojrat= lojra();
    $decode=json_decode($lojrat, true);
    foreach ($decode as $lojra) {
    
      echo $lojra['L_ID'];
    
    }
    

    问题是当我在“index.php”上运行时,它返回值为6,5,4,3,2,1当我再次尝试“functions / index.php”中的相同代码时,我得到了结果我想要1,2,3,4,5,6 ......

    将sql查询更改为

    时出现问题
     $sql="SELECT * FROM `lojrat` ORDER BY 'L_ID' DESC";
    

    然后切换回旧的sql.Is这是任何XAMPP错误,因为我没有任何实时主机可以测试?

    谢谢!

2 个答案:

答案 0 :(得分:0)

如果要转义列名,请使用反引号。如果使用引号,它将作为字符串而不是列引用进行处理。

您也可以使用:

$sql="SELECT * FROM lojrat ORDER BY L_ID DESC";

答案 1 :(得分:0)

L_ID 设为 lojra()功能中的键,如:

 $lojrat[$row['L_ID']] = array( 'L_ID' => $row['L_ID'], 'L_Titulli' => $row['L_Titulli'], 'L_indextitulli' => $row['L_indextitulli'], 'L_fotoindex' => $row['L_fotoindex'], 'L_Embel' => $row['L_Embel'], 'L_cat' => $row['L_cat'], 'L_Played' => $row['L_Played'] );

并且在index.php文件中都使用如下:

foreach ($decode as $key => $lojra) {

echo $key;

} 

这将在两种情况下返回 1 2 3 4 5 6