【问题标题】:How to remove repeating headings如何删除重复的标题
【发布时间】:2017-02-17 22:01:52
【问题描述】:

花了几个小时试图弄清楚这一点,但没有成功,只是不是一个好的编码器。我有 2 个标题,称为标题和日期,我试图阻止它们在每一行之前重复。我只希望标题在顶部一次。我必须改变什么才能做到这一点。谢谢!!!!使用比特币搜索。

<thead>
        <tr>
          <th class='table-header' width='20%'>Title</th>
          <th class='table-header' width='5%'>Date</th>
        </tr>
      </thead>



<?php
define("ROW_PER_PAGE",15);
require_once('db.php');
?>
<html>
<head>
<style>
body{width:615px;font-family:arial;letter-spacing:1px;line-height:20px;}
.tbl-qa{width: 100%;font-size:0.9em;background-color: #f5f5f5;}
.tbl-qa th.table-header {padding: 5px;text-align: left;padding:10px;}
.tbl-qa .table-row td {padding:10px;background-color: #FDFDFD;vertical-align:top;}
.button_link {color:#FFF;text-decoration:none; background-color:#428a8e;padding:10px;}
#keyword{border: #CCC 1px solid; border-radius: 4px; padding: 7px;background:url("demo-search-icon.png") no-repeat center right 7px;}
.btn-page{margin-right:10px;padding:5px 10px; border: #CCC 1px solid; background:#FFF; border-radius:4px;cursor:pointer;}
.btn-page:hover{background:#F0F0F0;}
.btn-page.current{background:#F0F0F0;}
</style>
</head>
<body>
<?php   
    $search_keyword = '';
    if(!empty($_POST['search']['keyword'])) {
        $search_keyword = $_POST['search']['keyword'];

    $sql = 'SELECT * FROM posts WHERE post_title LIKE :keyword OR description LIKE :keyword OR post_at LIKE :keyword ORDER BY id DESC ';

    /* Pagination Code starts */
    $per_page_html = '';
    $page = 1;
    $start=0;
    if(!empty($_POST["page"])) {
        $page = $_POST["page"];
        $start=($page-1) * ROW_PER_PAGE;
    }
    $limit=" limit " . $start . "," . ROW_PER_PAGE;
    $pagination_statement = $pdo_conn->prepare($sql);
    $pagination_statement->bindValue(':keyword', '%' . $search_keyword . '%', PDO::PARAM_STR);
    $pagination_statement->execute();

    $row_count = $pagination_statement->rowCount();
    if(!empty($row_count)){
        $per_page_html .= "<div style='text-align:center;margin:20px 0px;'>";
        $page_count=ceil($row_count/ROW_PER_PAGE);
        if($page_count>1) {
            for($i=1;$i<=$page_count;$i++){
                if($i==$page){
                    $per_page_html .= '<input type="submit" name="page" value="' . $i . '" class="btn-page current" />';
                } else {
                    $per_page_html .= '<input type="submit" name="page" value="' . $i . '" class="btn-page" />';
                }
            }
        }
        $per_page_html .= "</div>";
    }


    $query = $sql.$limit;
    $pdo_statement = $pdo_conn->prepare($query);
    $pdo_statement->bindValue(':keyword', '%' . $search_keyword . '%', PDO::PARAM_STR);
    $pdo_statement->execute();
    $result = $pdo_statement->fetchAll();
}
?>
<form name='frmSearch' action='' method='post'>
<div style='text-align:right;margin:20px 0px;'><input type='text' name='search[keyword]' value="<?php echo $search_keyword; ?>" id='keyword' maxlength='25'></div>

    <?php
    if(!empty($result)) { 
        foreach($result as $row) {
    ?>
<table class='tbl-qa'>


<thead>
    <tr>
      <th class='table-header' width='20%'>Title</th>
      <th class='table-header' width='5%'>Date</th>
    </tr>
  </thead>


  <tbody id='table-body'>
      <tr class='table-row'>
      <td><a style="text-decoration: none;" href="<?php echo $row['description']; ?>">
    <?php echo $row['post_title']; ?></a></td>
    <td><?php echo $row['post_at']; ?></td>
      </tr>
    <?php
        }
    }
    ?>
  </tbody>
</table>

<?php echo $per_page_html; ?>

</form>
</body>
</html>

【问题讨论】:

  • 您正在 foreach 循环中重新创建表格( ... ),它应该只包含您的行的 html(... 部分)
  • 表需要在循环之外

标签: php search pagination


【解决方案1】:

这样就可以了:

要测试的数组(在您的情况下使用您的 $result)

$result=array(
array('post_title'=>'title 1','post_at'=>'at 1'),
array('post_title'=>'title 2','post_at'=>'at 2'),
array('post_title'=>'title 3','post_at'=>'at 3'),
)

HTML:

<table class='tbl-qa'>
<tr>
    <th class='table-header' width='20%'>Title</th>
    <th class='table-header' width='5%'>Date</th>
</tr>
<?php
    if(!empty($result)) { 
        foreach($result as $row) {
        ?>
        <tr class='table-row'>
            <td><a style="text-decoration: none;" href="<?php echo $row['description']; ?>">
            <?php echo $row['post_title']; ?></a></td>
            <td><?php echo $row['post_at']; ?></td>
        </tr>
        <?php
        }
    ?>
    <?php
    }
?>

如您所见,如果标题只写一次,因为它在循环之外,而循环内的行将被重复。 最后将表关闭循环。

【讨论】:

  • 解析错误:语法错误,第 107 行 /home/a8814009/public_html/index.php 中出现意外 $end
  • 我不知道你是第 107 行。我的代码只有 28 行,而且工作正常。我还添加了一个数组,以便您对其进行测试。
  • 感谢 Giacomo 还有 1 个问题。在我进行搜索之前,标题和数据标题会显示出来。看看我在vince.netau.net 的意思如果尝试搜索使用术语比特币
  • 欢迎您 Vinman64。关于您的第二个问题,请尝试更具体。发布您正在测试的代码,它的预期功能和实际功能。这种方式对大家来说更容易帮助。由于这是一个新问题,请打开一个新问题并接受此问题的答案。
猜你喜欢
  • 2019-08-15
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多