【问题标题】:Repopulate a table of results with results that match a search使用与搜索匹配的结果重新填充结果表
【发布时间】:2014-04-28 00:11:53
【问题描述】:

我有以下代码自动从数据库中回显学生信息。但是,当用户搜索特定学生时,我需要将相关学生重新填充到同一张表中。

非常感谢所有帮助!

if(!isset ($_POST['search'])){
$pupils = mysql_query("SELECT * FROM pupil") or die("Cant find Pupils");
$count = mysql_num_rows($pupils);    
if ($count == 0 ) {
    $totalpupil = "There are currently no Pupils in the system.";     
} else{
    while($row = mysql_fetch_array($pupils)){
        ?>                                        
                <tr>
                    <td><?php echo '<a href="profile.php?    id='.$row['pupil_id'].'">'.$row['pupil_id'].'</a>'; ?></td>
                    <td><?php echo $row['pupil_name']?></td>
                    <td><?php echo $row['class_id']?></td>
                    <td><a href="pupiledit.php?id='.$id.'">Edit</a> | <a     href="pupildelete.php?id='.$id.'">Delete</a></td>
                </tr>
                <?php
    }       
}
}

【问题讨论】:

  • 为什么不在查询中定义WHERE pupil_id = ??结果将以与没有WHERE 的方式相同的方式填充表格
  • 因为当前代码会自动显示所有学生,这正是我想要的。但是,当用户搜索时,我需要将所有学生过滤到与搜索相似的学生。这样更好理解吗?

标签: php mysql search html-table echo


【解决方案1】:

这样的?

if(!isset ($_POST['search'])){
 $pupils = mysql_query("SELECT * FROM pupil") or die("Cant find Pupils");
}
elseif(isset($_POST['search'])){

 $search_param = "%".$_POST['search']."%";
 $pupils = mysql_query("SELECT * FROM pupil WHERE LOWER(pupil_name) LIKE LOWER($search_param)") or die("Cant find Pupils");
}

$count = mysql_num_rows($pupils);

if($count == 0){
 $totalpupil = "There are currently no Pupils in the system."; 
}
else{
     while($row = mysql_fetch_array($pupils)){
    ?>                                        
            <tr>
                <td><?php echo '<a href="profile.php?    id='.$row['pupil_id'].'">'.$row['pupil_id'].'</a>'; ?></td>
                <td><?php echo $row['pupil_name']?></td>
                <td><?php echo $row['class_id']?></td>
                <td><a href="pupiledit.php?id='.$id.'">Edit</a> | <a     href="pupildelete.php?id='.$id.'">Delete</a></td>
            </tr>
            <?php
}

我假设您在pupil_name 列中进行搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    相关资源
    最近更新 更多