Formulário de pesquisa com um ou mais parâmetros (múltiplos)

Descobri o básico, onde criei dois arquivos, o formulário de pesquisa em que um usuário insere parâmetros de pesquisa e o arquivo de resultados que gera os itens inseridos. Por uma questão de simplicidade, designaremos o arquivo do formulário de pesquisa como search.php e a página de resultados como results.php.

EDIT: etiqueta de guia limpa para uma leitura mais suave.

search.php
<?php

    if(!empty($_POST['id']) && isset($_POST['id'])) {

    header("Location: ?m=search.results&id=".$_POST['id']."");

    } elseif(!empty($_POST['major']) && isset($_POST['major'])) {

    header("Location: ?m=search.results&major=".$_POST['major']."");

    } elseif(!empty($_POST['college']) && isset($_POST['major'])) {

    header("Location: ?m=search.results&college=".$_POST['college']."");

    } elseif (!empty($_POST['name']) && isset($_POST['name'])) {

    header("Location: ?m=search.results&name=".$_POST['name']."");


    } elseif (!empty($_POST['id']) && !empty($_POST['college']) && !empty($_POST['major']) 
                                  && isset($_POST['submit']) && !empty($_POST['name'])) {

        echo "<div class='alert alert-danger'>No students found. Please try different parameters.</div>";



    }

    ?>


    <h4>Search</h4>

    <form method="POST">
        <table width="100%">

    <tr><td>ID:</td><td> <input type="text" name="id" class="form-control"></textarea></td></tr>

     <tr><td>Name:</td><td> <input type="text" name="name" class="form-control"></textarea></td></tr>

     <tr><td>Major:</td><td><select name="major" class="form-control"><option></option><?php echo majorSelect(); ?></select></td></tr>

     <tr><td>College:</td><td><select name="college" class="form-control"><option></option><?php echo collegeSelect(); ?></select></td></tr>

     <tr><td colspan="2"><input type="submit" name="submit" value="Search" class="btn btn-lrg btn-primary" style="margin-top:10px;"></td></tr>

        </table>
    </form>
results.php
   <?php  if(isset($_GET['id'])){ 

            $students = $db->query("SELECT * FROM `user_details` a, `user` b WHERE a.uid = b.id AND a.uid = '".$_GET['id']."'");


                while($student = $students->fetch()) {

                echo '
                    <tr>
                        <td>'.$student['uid'].'</td>
                        <td>'.$student['name'].'</td>
                            <td>'.$student['major'].'</td>
                            <td>'.$student['college'].'</td>
                        <td><a href="?m=profile&id='.$student['id'].'" style="display:block">View</a></td>

                    </tr>';

        }

                 } elseif(isset($_GET['major'])){  


                $students = $db->query("SELECT * FROM `user_details` a, `user` b WHERE a.uid = b.id AND a.major = '".$_GET['major']."'");

                while($student = $students->fetch()) {

                echo '
                    <tr>
                        <td>'.$student['uid'].'</td>
                        <td>'.$student['name'].'</td>
                            <td>'.$student['major'].'</td>
                            <td>'.$student['college'].'</td>

                        <td><a href="?m=profile&id='.$student['id'].'" style="display:block">View</a></td>

                    </tr>';

        }


            } elseif(isset($_GET['college'])){  


                $students = $db->query("SELECT * FROM `user_details` a, `user` b WHERE a.uid = b.id AND a.college = '".$_GET['college']."'");

                while($student = $students->fetch()) {

                echo '
                    <tr>
                        <td>'.$student['uid'].'</td>
                        <td>'.$student['name'].'</td>
                            <td>'.$student['major'].'</td>
                            <td>'.$student['college'].'</td>
                        <td><a href="?m=profile&id='.$student['id'].'" style="display:block">View</a></td>

                    </tr>';

        }


           } elseif(isset($_GET['name'])){ 


                $name = $_GET['name'];

                $students = $db->query("SELECT * FROM `user_details` a, `user` b WHERE a.uid = b.id AND b.name LIKE '%". $name . "%'");

                while($student = $students->fetch()) {

                echo '
                    <tr>
                        <td>'.$student['uid'].'</td>
                        <td>'.$student['name'].'</td>
                            <td>'.$student['major'].'</td>
                            <td>'.$student['college'].'</td>
                        <td><a href="?m=profile&id='.$student['id'].'" style="display:block">View</a></td>

                    </tr>';

            }



        } ?>

Então, basicamente, gostaria de reescrever o que foi dito acima, enquanto um usuário pode inserir um ou mais parâmetros e o resultado desejado é retornado (por exemplo, nome e faculdade - & name = x & college = y OU todos os itens, se necessário). Acho que vou precisar repensar a lógica nos dois arquivos, mas estou aberto a quaisquer idéias ou sugestões que você, essa maravilhosa comunidade, possa ter! Qualquer conselho / orientação seria muito apreciado.

questionAnswers(2)

yourAnswerToTheQuestion