我正在尝试从数据库表生成新闻。
我的 table 看起来像那样
以及从数据库表生成消息的函数
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/