【问题标题】:PHP: How to Sort by Last Name & Distance of a DatabasePHP:如何按数据库的姓氏和距离排序
【发布时间】:2016-03-27 03:36:32
【问题描述】:

我很难弄清楚。我可能只是忽略了它,但我想有人可以帮我做什么。我需要通过单击两个单独的单选按钮按姓氏和距离进行排序。这一切都将在一个半小时内完成,我是使用 PHP 排序的新手。我在这里搜索过,但没有找到与我正在寻找的内容相关的任何答案。任何帮助将不胜感激。

PHP:

<tr><th>First Name</th><th>Last Name</th><th>Email</th><th>Distance</th></tr>
    <?php  
    include('includes/database/dbc.php');
    $sql = "SELECT * FROM runner ORDER BY 'lname'";
    $result = mysql_query($sql) or die('Error! '.mysql_error());
    if(mysql_num_rows($result)==0) {
    echo "<tr><td colspan='4'>Sorry, no lists are available today. Check back soon!</td></tr>";
    }
    while($row=mysql_fetch_assoc($result)) {
    echo '<tr><td>'.$row['fname'].'</td>';
    echo '<td>'    .$row['lname'].'</td>';
    echo '<td>'    .$row['email'].'</td>';
    echo '<td>'    .$row['Distance'].'</td></tr>';
    }
    ?>
    <?php if(isset($_POST['submit_sort'])){
    $radio = $_POST['submit_sort'];
    if($radio =='fname'){
        $select ="SELECT fname, address1 FROM runner ORDER BY lname";}elseif($radio =='address1'){
        $select ="SELECT fname, address1 FROM runner ORDER BY address1";}       
    $result = mysql_query($lrconnect,$select)or die("Invalid query: ".mysql_error($lrconnect));
    }
    ?>

HTML:

<div id="sort">
        <form class="form2" action="submit_sort">
            <input type="radio" name="sort" value="lname" id="lnamesort" >Sort By Last Name
            <br>
            <input type="radio" name="sort" value="distance" id="distancesort">Sort By Distance
        </form>
</div>

【问题讨论】:

  • 目前发生了什么?引号用于字符串,反引号用于转义。您的选择查询是相同的,我会定义查询,然后将要排序的列附加到查询的末尾。
  • 目前,什么都没有发生。整件事对我来说根本不起作用。
  • 所以是白页?检查错误日志。如果未指定 POST,则形式也是 GET
  • 您的代码中存在错误,您用于检查当前选项 submit_sort insted of sort 以及在您的 sql 查询中您使用 order by address1 insted of distance。
  • Chris85,我得到一个没有错误日志的正常页面。似乎没有任何东西可以使用它。点击的每个收音机都没有任何作用。

标签: php html database sorting


【解决方案1】:

您的代码中有一些错误。根据您的需要,它应该如下所示:

HTML:-

 <div id="sort">
            <form class="form2" action="your_action" method="POST">
                <input type="radio" name="sort" value="lname" id="lnamesort" >Sort By Last Name
                <br>
                <input type="radio" name="sort" value="distance" id="distancesort">Sort By Distance
                <input type="submit" name="search" value="search">
            </form>
    </div>

PHP:-

<?php 
if(isset($_POST['sort'])){
    $radio = $_POST['sort'];
    if($radio =='lname'){
        $select ="SELECT fname, address1 FROM runner ORDER BY lname";
    }elseif($radio =='distance'){
        $select ="SELECT fname, address1 FROM runner ORDER BY distance";
    }       
    $result = mysql_query($lrconnect,$select)or die("Invalid query: ".mysql_error($lrconnect));
}
?>

【讨论】:

  • 如果你能解释一下你所做的错误和修改,那就太好了
  • 1) 表单中没有发布方法和提交按钮。 2)PHP比较时没有合适的条件。
  • 我不使用提交按钮。假设使用一个单选按钮按姓氏自动对数据库进行排序,另一个假设按距离排序。
  • 我想通了。谢谢大家的帮助!这是 PHP 文件末尾的一个小错误,也导致没有任何工作。现在可以了。再次感谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 2016-04-16
  • 1970-01-01
相关资源
最近更新 更多