昨天我问了这个问题:https://stackoverflow.com/questions/15117767/add-dynamic-content-to-otherwise-static-php-page 对不太准确的问题感到抱歉。我现在自己完成了很多,但我还有几个问题。
我设法将我的新闻放入数据库表中,其中包含以下列: “id”,“news_headline”,“news_date”,“news_teaser”,“news_content”,“news_external_link”
在我的news / index.php上,我现在有以下代码:
<?php
$con=mysqli_connect("localhost", "XXX", "oizQvdjh", "usr_web3_1");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM tbl_news ORDER BY id DESC");
while($row = mysqli_fetch_array($result))
{
echo "<li class='clearfix'>";
echo "<a class='news_pic'><img src='/assets/images/news/news_".$row['id']
."_thumb.jpg'></a>";
echo "<h2 class='info_headline'>" . $row['news_headline'] . "</h2>";
echo "<p class='date'>" . $row['news_date']
. " – <a href='#disqus_thread'></a></p>";
echo "<p class='news_text'>" . $row['news_teaser']
. "<br><a class='more-link' href='WHERE_TO'>Read more</a></p>";
echo "</li>";
}
mysqli_close($con);
?>
那里的一切看起来都很棒,它从数据库中获取我的所有新闻(目前为止有五个)并获取我自己在服务器上上传的图像,其名称根据id。
单个新闻方具有相同的代码,除了它有一个“WHERE”语句并抓取内容文本而不是预告片:
$result = mysqli_query($con,"SELECT * FROM tbl_news WHERE id='1' ORDER BY id DESC");
while($row = mysqli_fetch_array($result))
{
echo "<h2>" . $row['news_headline'] . "</h2>";
echo "<p class='date'>" . $row['news_date']
. " – <a href='#disqus_thread'></a></p>";
echo "<a class='news_pic'><img src='/assets/images/news/news_".$row['id']."
.jpg'></a>";
echo "<p class='news_text'>" . $row['news_content'] . "</p>";
}
mysqli_close($con);
?>
现在回答我的问题。如何保存单个新闻的文件以使其动态更新。在我的索引中,href表示“在哪里”,我想要一个像<a href="<?php echo $row['news_date'] + slug
这样的链接(我会在我的表中添加一个列slug)。
然后应生成单个php的新闻,并且还应该说明URL中的日期和slug。喜欢XXX / news / 2013-02-18_this-is-a-news-site.php
我知道为此,我还必须在WHERE命令中添加一个变量:而不是WHERE id=1
- &gt; id =“GET AUTOMATICALLY”。我也不知道该放什么。
答案 0 :(得分:0)
顺便说一下,你的问题不是很清楚:
您需要启用mod_rewrite并选择适当的重写规则。
像这样创建一个.htaccess文件:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?path=$1 [L,QSA]
像
这样的网址http://your.site.com/news/2012/10/22
将转换为
http://your.site.com/index.php?path=/news/2012/10/22
从查询字符串中获取“路径”并创建查询。务必正确清理输入。
2012/10/22几乎是一个mysql有效日期:只需将'/'替换为' - '。
$dt=str_replace('/','-',substr($path,6));
确保它是有效日期:
$dt=date('Y-m-d',strtotime($dt));
现在您的查询可能是
$query="SELECT * FROM tbl_news WHERE news_date='$dt'";
此查询将为您提供特定日期的所有新闻。