2017-06-16 8 views
-2

Ich versuche, zu sortieren, aber das sagt Art nicht definiert ist:Undefined index: sort

Notice: Undefined index: Art in C: \ xampp \ htdocs \ index.php on line 23

Hinweis: undefinierte Index: Sortieren in C: \ xampp \ htdocs \ index.php on line 27

Hinweis: undefiniert Index: Sortieren in C: \ xampp \ htdocs \ index.php on line 31

Hinweis: undefiniert index : Sortieren in C: \ xampp \ htdocs \ index.php in Zeile 35

Jeder kann helfen?

  <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

Mögliche Duplikat [PHP: "Hinweis: Nicht definierte Variable", "Notice: Undefined index" und "Hinweis: Undefined offset"] (https://stackoverflow.com/ Fragen/4261133/php-notice-undefined-variable-notice-undefined-index-und-notice-undef) – schellingerht

+0

Welche Zeile in Ihrem obigen Code ist die Zeilennummer 23? –

+0

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

Antwort

1

Sie füllen $sortby Variable, also verwenden Sie es anstelle von $_GET['sort'] in wenn Bedingungen. Zusätzlich überschreiben $sql nach if/else Bedingungen:

<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

Ich habe jetzt keine Fehler, aber sortiere nicht –

+0

Ich aktualisierte meine Antwort. Überprüfen Sie bitte das! –

+0

Danke, btw es nur ASC sortieren, wie kann ich machen, wenn ich nochmal klicke um DESC zu sortieren? –

0

ersetzen alle if ($_GET['sort'] mit if($sortBy

Der Grund dieser Fehler auch immer ist, weil Sie nur eine isset Kontrolle haben. Das ist gut, aber später im Code gehen Sie wieder zu $_GET['sort'] ohne zu überprüfen, ob es gesetzt ist.

+0

Hinweis: Undefinierte Variable: sortBy in C: \ xampp \ htdocs \ index.php in Zeile 23 –

+0

Sorry musste '$ sortby' (Kleinbuchstaben) sein, aber du hättest das selbst sehen können. –