1


所以我正在尝试通过连接到数据库的 php 创建一个网站。它通过查询获取信息。该网站应该是关于新闻的,我已经停下来了。我设法创建了一个完整的首页等,它从数据库中获取新闻并显示它们,当您使用左侧的导航栏(lnav)时,它会显示您选择的特定新闻(这是第一个 . php 文件)。我现在要做的是制作一个单独的文章页面。我想在页面上显示标题、介绍、正文、日期、作者姓名和标题、文件名、描述和标题,我还想使用包括从第一个名为 newswebb.php 的文档中链接导航栏。SQL查询也不是英文的,如果你需要翻译,我会在需要时编辑它

这些是我编写的 SQL 查询来完成

--  headers and preambles to Article 
SELECT Rubriker, Ingress, Brödtext, Publicerat 
FROM Artiklar 
WHERE ArtikelID IN (2);

-- 
-- I have retrieved "" name and title of all the article writer. '"
SELECT p.Namn, p.Titel, ae.ArtikelID
    FROM artiklar_anställda ae join
         anställda p
         on p.AnställningsID = ae.AnställningsID
    WHERE ae.ArtikelID IN (2);

-- 
-- specifies a article # 2
SELECT p.BildID, p.Filnamn, p.FotografNamn, ap.ArtikelID
FROM bilder p join
     artiklar_bilder ap
     on p.BildID = ap.ArtikelID
WHERE ap.BildID IN (2); 



这是我到目前为止所拥有的

$query = mysql_query("SELECT artiklar.ArtikelID, artiklar.Rubriker, artiklar.Ingress, artiklar.Brödtext, artiklar.Publicerat, anställda.Namn AS Namn, anställda.Titel, anställda.AnställningsID
            FROM artiklar
            INNER JOIN artiklar_anställda
            ON artiklar.ArtikelID = artiklar_anställda.ArtikelID
            INNER JOIN anställda
            ON artiklar_anställda.AnställningsID = anställda.AnställningsID");

    while($row = mysql_fetch_array($query)) {

    echo '<div class="ingress">' . $row['Ingress'] . '</div>';

            echo '<div class="date">Publicerat: ' . date("Y-m-d", strtotime($row['Publicerat'])) . '</div>';

            echo '<div class="rubrik">' . $row['Rubriker'] . '</div>';

            echo '<div class="artikel">' . $row['Brödtext'] . '</div>';

            echo '<div class="">' . $row['Namn'] . '</div>';
}


?>

但我无法让它工作

4

2 回答 2

0

我认为您要问的是通过获取从数据库中获取一篇文章。

如果是这样的话:

有一个网址:

http://www.url.com/page.php?article=5

现在你可以进入你的 php 文件来检索文章。

$articleId = $_GET['article'];

现在,您在查询中使用此变量来选择带有 where 子句的文章:

WHERE article_id = $articleId

边注:

停止使用 mysql_* 函数。检查上面的警告:http: //php.net/manual/en/function.mysql-query.php

替代方案:mysqli 或 PDO。

还可以让您验证所有内容并防止 SQL 注入。

于 2013-08-16T12:45:58.730 回答
0

在插入任何查询之前始终保护 GET/POST 元素。

$articleID = isset($_GET['article']) ? intval($_GET['article']) : '';
if(!$articleID)
{
exit("Invalid article id!");
}
//rest of code..
于 2013-08-16T12:52:12.857 回答