php - 从数据库表生成新闻

标签 php mysql

我正在尝试从数据库表生成新闻。

我的 table 看起来像那样

enter image description here

以及从数据库表生成消息的函数

function generateNews ($lang, $db)
{
    $title = 'title_' . $lang;
    $short = 'short_' . $lang;
    $detailed = 'detailed_' . $lang;
    $result=$db->query("SELECT id, $title as title, $short as short, $detailed as detailed, ndate FROM news");

    while($row=$result->fetch_object()) {
        $title=makeEntry ('title', $row->title);
        $stitle=makeEntry ('stitle', $row->short);
        $content=makeEntry ('content',$row->detailed);
        $footer=makeEntry ('footer',$row->ndate);

        echo makeEntry ('entry',$title.$stitle.$content.$footer);
    }   
}   

function makeEntry ($part,$data)
{
    if($part=='title')
        return '<h3 class="entry-header">'.$data.'</h3>'."\n";
    else if ($part=='stitle')
        return '<h4 class="entry-stitle">'.$data.'</h4>'."\n";
    else if ($part=='content')
        return '<div class="entry-content"><p>'.$data.'</p></div>'."\n";
    else if ($part=='footer')
        return '<div class="entry-footer">'.$data.'</div>'."\n";
    else if ($part=='entry')
        return '<div class="entry">'.$data.'</div>'."\n";
}

它可以工作,但是这段代码非常简单,所以我觉得它可以缩短。有什么建议么?

顺便说一句。不要发布有关 sql 注入(inject)漏洞的信息。我已经将表列名称列入白名单

最佳答案

使用 switch case 控制结构将使您摆脱这些 elseif ($part == ) 语句。

关于php - 从数据库表生成新闻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7542415/

相关文章:

php - 当 POST 字段为空时,将 NULL 插入外键

PHP:使用 PEAR 写入 excel 文件

mysql - Docker Run 命令并导入 MySQL

php - 检测在线用户 : PHP

php - DataExtension 中的 SilverStripe insertHeadTags

php - 在 sql 文件的 csv 转储中替换\N

php - 如何检查数组的多个值?

php - 子查询执行不止一行,我的查询不同

php - 使用 php 和 html 限制第二个下拉列表选项

php select 获取一个变量,然后对其应用 if else