Php 以html格式在数组中显示数据库值
我想通过数组将Php 以html格式在数组中显示数据库值,php,html,sql,Php,Html,Sql,我想通过数组将$view['time']值替换为%time%来显示数据库值 范例 如果$view['time']='8;下午三时;当我写%time%这里显示晚上8点 它适用于单个原始数据,但当我尝试在这里按循环显示值时,这里仅显示第一个值是我的代码,请检查并帮助我 <?php $msg=' <div class="pad9"> <img src="http://trickround.xtgem.com/files/licon.gif"/> <a
$view['time']
值替换为%time%
来显示数据库值
范例
如果$view['time']='8;下午三时;代码>当我写%time%
这里显示晚上8点
它适用于单个原始数据,但当我尝试在这里按循环显示值时,这里仅显示第一个值是我的代码,请检查并帮助我
<?php
$msg='
<div class="pad9">
<img src="http://trickround.xtgem.com/files/licon.gif"/>
<a href="%post-id%"> %post-title% </a>
<br/>
<div class="lined"> </div>
<font color="fuchsia"> </font>
<font color="red">%time%</font>
</div>
<div class="lines"></div>';
$post1 = $conn->prepare('SELECT * FROM post WHERE id_user = :id order by id DESC LIMIT 10');
$post1->execute(array(':id' => '4'));
while ($view = $post1->fetch(PDO::FETCH_ASSOC)) {
$bbcode = array(
'%post-title%' => htmlentities($view['title'], ENT_QUOTES, 'UTF-8'),
'%post-messge%' => $view['message'],
'%time%' => $view['time'],
'%post-id%' => ''.$view['id'].'.html',
'%post-url%' => ''.$view['url'].'.html'
);
$msg = str_replace(array_keys($bbcode), array_values($bbcode), $msg);
echo $msg;
}
您在每次迭代中都会覆盖原始字符串$msg
。第一次迭代后,字符串$msg
将包含第一次迭代的数据,其中所有占位符都已被替换
不要将结果存储在$msg
中,只需直接在循环中回显结果即可
更改:
$msg = str_replace(array_keys($bbcode), array_values($bbcode), $msg);
echo $msg;
只是:
echo str_replace(array_keys($bbcode), $bbcode, $msg);
正如@mickmackusa指出的,第二个参数不需要使用array\u values()
,因为str\u replace()
只使用数组值。请重写文本并格式化代码。在写问题时为自己节省时间,让我们更难阅读,这不是提问的适当方式。在写文本时,使用标点符号和换行符。在编码时,没有将所有内容都写在一行中的样式点,相反。可读性很重要。在这两种情况下,“然后我尝试显示结果,但失败”-如何失败?不替换占位符?替换错误的占位符?错误消息?我通过更清晰的方式编辑了我的问题。请参见我已投票重新打开,因为问题现在已经足够清楚了。谢谢,这很有效nice@Magnus您不需要调用array\u values()
,键将被忽略。既然问题已经澄清,您可能想投票重新打开。@mickmackusa-关于数组\u值()
的观点很好。完全错过了这个问题:-)我已经在9天前投票决定重新讨论这个问题了。我也是。上面说我再过9天就不能开门了。