我如何为新闻网站动态生成“阅读更多”链接


How I can generate "read more" link dynamically for news site

我正在做新闻网站并从数据库中获取新闻,如下所示

<div class="left-content nine-column" style="font-size:13px; line-height:25px; font-family:open sans;">
    <?php
        $qry = "Select * from  tbl_news";
        $result = null;
            if(!$result = mysqli_query($con,$qry)) 
                Die("Error in database");
            else
            {
                if(mysqli_num_rows($result) >= 1)
                {
                    while(($rec = mysqli_fetch_assoc($result)) != null) 
                    {
                        echo '<div class="post">
                        <h1>'. $rec['news_heading'] .'</h1>
                        <ul class="post-meta">
                        <li><a href="" title=""><i class="icon-calendar-empty"></i><span>'. $rec['news_date'] .'</span></a></li>
                        <li><a href="" title=""><i class="icon-user"></i>By'.$rec['postedby'].'/a></li>
                        <li><a href="" title=""><i class="icon-map-marker"></i>'.$rec['news_location'].'</a></li>
                        </ul>
                        <div class="post-desc">
                        <p>'.$rec['news_ldesc'].'                                     
                        <!-- here i want read more link -->
                        </p>                        
                        <br/>
                        </div>
                        </div> '; 
                    }
                }
            }           
            ?>
        </div>

现在我想做的是我想阅读更多针对他们重定向到news_details.php的每个新闻项目的链接,并且单个新闻将显示在那里,我如何获得它,请帮助我

首先,您需要构建news_detail.php,以处理单个帖子查看。在那里,您需要决定要带哪些新闻细节,通常人们会使用 id。然后,您需要从链接中传递id,例如href='news_details.php?id=your_id_here'

数据库中应该有新闻 ID。检索所有新闻并循环打印时,应使用以下代码。我不知道数据库中新闻ID列名称的名称是什么

echo '<a href="news_details.php?id='.$rec['news_id'].' ">Read More</a>'; // news_id should be matched with database column name

现在,您应该为新闻详细信息编写代码。您应该使用 get 方法从数据库查询接收新闻 ID 并打印到循环中。

更新:在news_details.php中,您应该通过GET方法$_GET["id"]接收新闻ID的值,然后编写代码获取数据库表的行。即

$newsId = $_GET["id"];
$qry = "Select * from  tbl_news where id = $newsId ";
$result = mysqli_query($con,$qry);
while($row = mysqli_fetch_array($result))
{
  echo $row['news_ldesc'] ;
}

试试这个。

您可以为特定新闻设置单独的链接,例如

href='news_description.php?id='.base64_encode($id)

使用以下步骤:

1)您可以使用php substr将新闻内容截断为多个单词。然后添加 阅读更多 下面的链接。

您的代码将如下所示:

<div class="left-content nine-column" style="font-size:13px; line-height:25px; font-family:open sans;">
         <?php
            $qry = "Select * from  tbl_news";
            $result = null;
            if(!$result = mysqli_query($con,$qry)) 
            Die("Error in database");
            else
            {
            if(mysqli_num_rows($result) >= 1)
            {
            while(($rec = mysqli_fetch_assoc($result)) != null) 
            {
            echo '<div class="post">
            <h1>'. $rec['news_heading'] .'</h1>
            <ul class="post-meta">
            <li><a href="" title=""><i class="icon-calendar-empty"></i><span>'. $rec['news_date'] .'</span></a></li>
            <li><a href="" title=""><i class="icon-user"></i>By'.$rec['postedby'].'/a></li>
                                            <li><a href="" title=""><i class="icon-map-marker"></i>'.$rec['news_location'].'</a></li>
         </ul>
        <div class="post-desc">
        <p>'.substr($rec['news_ldesc'], 0, 100).'                                     
           <!-- here i want read more link -->
            </p>                        
        <br/>
        </div>
        </div> '; 
                        }
                    }
                }           
            ?>
        </div>

如果你看到,我用了substr($rec['news_ldesc'], 0 , 100),把你的新闻内容截断到100个字。 0 开始,100 结束。

2)使用库兹贡的答案

另请阅读此内容:

如何在 PHP 中将字符串截断为前 20 个单词?