通过多个复选框php从数据库表中排序

时间:2013-12-15 09:41:13

标签: php mysql

我有一个关于按字母顺序从数据库中显示数据的问题。 我有2个ckeckbox并且如果检查了nr.1,它必须按照字母顺序从表“companyName”显示数据,但如果选中chechbox nr.2,它必须按字母顺序从表“stade”显示数据。

我对编码很陌生,所以如果有人可以解释或告诉我它应该是什么样子,我会很高兴。

这是复选框:

  <fieldset>
    <dl">
        <dt><label for="sleep">Sortering:</label></dt>
        <dd>
            <input type="checkbox" name="" value="Alfabetisk A-Z"/>
            <label for="alfabetiskA-z" class="opt">Alfabetisk A-Z</label>
            <input type="checkbox" name="" value="Alfabetisk Stade"/>
            <label for="alfabetiskStade" class="opt">Alfabetisk Stade</label>
        </dd>
    </dl>
</fieldset>

这是我在数据库中显示数据的地方:

 echo '
              <table class="tableUser">
                <tr class="topColor">
                  <td>Stade</td>
                  <td>Firmanavn</td>
                  <td>Navn</td>
                  <td>Telefon nr.</td>
                  <td>E-mail adresse</td>
                </tr>';


              $class0 = "trColor0";
              $class1 = "trColor1";

              $query = mysqli_query($conn,"SELECT * FROM creatUser ORDER BY companyName ASC");

              while( $result = mysqli_fetch_array($query)) {
                $id = $result['id'];
                $class = "trColor". $i%2;

                echo '

                <tr class="'.$class.'">
                  <td VALIGN=TOP>'.$result['locationNumber'].'</td>
                  <td VALIGN=TOP>'.$result['companyName'].'</td>
                  <td VALIGN=TOP>'.$result['fName'] . ' ' . $result['lName'].'</td>
                  <td VALIGN=TOP>'.$result['phone'].'</td>
                  <td VALIGN=TOP>'.$result['eMail'].'</td>
                </tr>';
                $i++;


              }

1 个答案:

答案 0 :(得分:0)

您必须为复选框指定名称,以便获得用户选择的内容:

        <input type="checkbox" name="sort" value="Alfabetisk A-Z"/>
        <label for="alfabetiskA-z" class="opt">Alfabetisk A-Z</label>
        <input type="checkbox" name="sort" value="Alfabetisk Stade"/>
        <label for="alfabetiskStade" class="opt">Alfabetisk Stade</label>

然后在你的PHP中,你做:

if (!isset($_POST['sort']) || $_POST['sort'] == 'Alfabetisk A-Z') {
    $order = 'companyName'
} else {
    $order = 'stade';
}

$sql = "SELECT * FROM creatUser ORDER BY $order ASC";
$query = mysqli_query($conn, $sql) or die (mysqli_error($conn));