为什么这会阻塞我的PHP代码


Why does this block my PHP code?

查询是

$q1 = "SELECT * from `event` ORDER BY `upload_date` DESC";

这是的功能

function display_content($r, $dis){
foreach($r as $part) {
$dis .= '<br /><div id="event_box">';
$dis .= '<div id="event_name"><a href = " http://'.$part['link'].'" target="_blank"> '.$part['name'].'</a></div>';
$dis .= '<div id="start_date"><b>From: </b>'.$part['start_date'].' </div>';
$dis .= '<div id="end_date"><b>Until: </b>'.$part['end_date'].' </div>';
$dis .= '<div id="event_link"><b>Link: </b><a href = " http://'.$part['link'].'" target="_blank">Event Website</a></div>';
$dis .= '<div id="event_venue"><b>Venue: </b>'.$part['venue'].' </div>';
$a = array(854, 480);
$b = array(300, 300);
$str = $part['embed_code'];
$partVideo = str_replace($a, $b, $str);
$dis .= '<div id="event_video"> '.$partVideo.' </div>';
$dis .= '<div id="event_image"><a href = " http://'.$part['link'].'" target="_blank"><img src = "data:image;base64, '.$part['image'].'"';
$dis .= 'alt = "'.$part['name'].'"></a></div>';
$dis .= '<div id="details">  '.$part['details'].'<br /><br />';
$dis .= '<button class="share2 btn-primary  s_twitter">Tweet!</button>&nbsp&nbsp';
$dis .= '<button class="share2 btn-primary  s_facebook">Share on Facebook!</button></div>';
$dis .= '</div>';
$dis .= '<br />';
}
echo $dis;
} // close function display content

稍后我打电话给

display_content($r1, $display);

只有数据库中事件的第一个实例(条目)出现,并且它看起来很好(名称、地点、详细信息等),但所有其他事件条目根本不会出现。就像他们可能被"屏蔽"了一样。

然而,如果我删除行,它们看起来都很好

 $dis .= '<div id="event_video"> '.$partVideo.' </div>';

条目要么有

$dis .= '<div id="event_image"><a href = " http://'.$part['link'].'" target="_blank"><img src = "data:image;base64, '.$part['image'].'"';
$dis .= 'alt = "'.$part['name'].'"></a></div>';

 $dis .= '<div id="event_video"> '.$partVideo.' </div>';

'$dis'或'$dis'在函数中表示的内容是在函数外部定义/实例化的($dis='';),因此应该是一个全局变量。

发生了什么事,我该如何解决?

我知道它们并不都有相同的图像/视频信息,这可能意味着我应该更好地规范我的数据库(在我填充它们之前,这些条目在数据库中为NULL),但它们不应该都出现/打印在屏幕上吗?

为什么只有第一个事件出现?

谢谢!

'<div id="event_video"> '.$partVideo.' </div id="event_video">';

这不是关闭HTML标记的方法。。。您应该使用:

'<div id="event_video"> '.$partVideo.' </div>';

仔细检查您的代码,并确保您有正确的HTML标记。你已经在多个地方做到了这一点。

此外,您可能需要执行var_dump( $partVideo ),以验证是否可以将该变量与字符串连接起来,并确保它不会"破坏"代码的其余部分。