-2

I'm trying to sort but that says sort is undefined:

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

Notice: Undefined index: sort in C:\xampp\htdocs\index.php on line 27

Notice: Undefined index: sort in C:\xampp\htdocs\index.php on line 31

Notice: Undefined index: sort in C:\xampp\htdocs\index.php on line 35

Anyone can help?

            <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'];


                    ?>
coding Bott
  • 4,287
  • 1
  • 27
  • 44

2 Answers2

1

You fill $sortby variable, so use it instead of $_GET['sort'] in if conditions. Additionally overwrite $sql after if/else conditions:

<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'];


    ?>
Mohammad Hamedani
  • 3,304
  • 3
  • 10
  • 22
0

replace all if ($_GET['sort'] with if($sortBy

The reason you're getting this error is because you have only one isset check. That's good but later in code you go back to using $_GET['sort'] without checking if it's set.

Tim van Uum
  • 1,873
  • 1
  • 17
  • 36