2017-06-16 101 views
-2

我试图理清但说排序是不确定的:未定义指数:排序

注意:未定义指数:排序在C:\ XAMPP \ htdocs中\的index.php上线23

注意:未定义的索引:排序在C:\ XAMPP \ htdocs中\的index.php上线27

说明:未定义指数:排序在C:\ XAMPP \ htdocs中\的index.php上线31

说明:未定义指数:在35行排序C:\ xampp \ htdocs \ index.php

任何人都可以提供帮助吗?

  <tbody> 
        <?php 
          $sortby = isset($_GET['sort']) ? $_GET['sort'] : 'id'; 
          if ($_GET['sort'] == 'id') 
          { 
           $sql .= " ORDER BY id"; 
          } 
          elseif ($_GET['sort'] == 'nome') 
          { 
           $sql .= " ORDER BY nome"; 
          } 
          elseif ($_GET['sort'] == 'idade') 
          { 
           $sql .= " ORDER BY idade"; 
          } 
          elseif($_GET['sort'] == 'peso') 
          { 
           $sql .= " ORDER BY peso"; 
          } 
           $serverName = "asdaf-DEMO"; 
           $options = array( "UID" => "sa", "PWD" => "fasdasd", "Database" => "demo"); 
           $conn = sqlsrv_connect($serverName, $options); 
            if($conn) { 
            $sql="SELECT * FROM cliente"; 
            $aResult=sqlsrv_query($conn, $sql); 
            while($rows = sqlsrv_fetch_array($aResult)) 
            { 
            $id = $rows['id']; 
            $nome = $rows['nome']; 
            $idade = $rows['idade']; 
            $peso = $rows['peso']; 


        ?> 
+1

[PHP: “注意:未定义变量”, “注意:未定义指数” 和 “通知:未定义偏移”]的可能的复制:(https://stackoverflow.com/后if/else条件此外覆盖$sql问题/ 4261133/php-notice-undefined-variable-notice-undefined-index-and-notice-undef) – schellingerht

+0

你上面代码中的哪一行是行号23? –

+0

if($ _GET ['sort'] =='id') –

回答

1

你填写$sortby变量,所以在if条件下用它代替$_GET['sort']

<tbody> 
    <?php 
      $sortby = isset($_GET['sort']) ? $_GET['sort'] : 'id'; 
      $sortOrder = isset($_GET['order']) ? $_GET['order'] : 'ASC'; 
      $orderBy = ''; 
      if ($sortby== 'id') 
      { 
       $orderBy .= " ORDER BY id"; 
      } 
      elseif ($sortby== 'nome') 
      { 
       $orderBy .= " ORDER BY nome"; 
      } 
      elseif ($sortby== 'idade') 
      { 
       $orderBy .= " ORDER BY idade"; 
      } 
      elseif($sortby== 'peso') 
      { 
       $orderBy .= " ORDER BY peso"; 
      } 
       $serverName = "asdaf-DEMO"; 
       $options = array( "UID" => "sa", "PWD" => "fasdasd", "Database" => "demo"); 
       $conn = sqlsrv_connect($serverName, $options); 
        if($conn) { 
        $sql="SELECT * FROM cliente" . $orderBy . ' ' . $sortOrder; 
        $aResult=sqlsrv_query($conn, $sql); 
        while($rows = sqlsrv_fetch_array($aResult)) 
        { 
        $id = $rows['id']; 
        $nome = $rows['nome']; 
        $idade = $rows['idade']; 
        $peso = $rows['peso']; 


    ?> 
+0

我现在没有错误,但排序不工作 –

+0

我更新了我的答案。请检查一下! –

+0

谢谢,顺便说一句,它只对ASC进行排序,如果我再次点击排序DESC,我该如何做? –

0

替换所有if ($_GET['sort']if($sortBy

你得到这个错误的原因是因为你只有一个isset检查。这很好,但稍后在代码中,您可以返回使用$_GET['sort']而不检查它是否已设置。

+0

注意:未定义变量:sortBy在C:\ xampp \ htdocs \ index.php上第23行 –

+0

对不起''sortby'(小写)但你可以亲眼看到。 –