从数据库中分解字符串并在函数中显示结果

时间:2016-10-31 12:28:29

标签: php

我有这个查询和功能

$images = [];
$q = $pdo->query("SELECT * FROM projects ORDER BY project_id ASC LIMIT 8");
foreach($q as $row)  {

        $mainTitle1 = $row['project_category'];
        $parts1=explode(" ",$mainTitle1);

        $images[] = [
             'project_category' => $row['project_category'],
             'project_id'    => $row['project_id'],
             'project_image'    => $row['project_image']          
        ];
}
function image_html($image) {
        return '<img src="'.$image['project_image'].'" alt="">';
}
function category($category) {
        return '<span class="item-title">'.$parts1[0].'</span><span class="item-cat"> '.$parts1[1].'</span> ';
}                       

然后我试图像这样显示

<div class="itemm web">
    <?php echo image_html($images[0]); ?>
            <div class="item-overlay">
                <?php echo category($images[0]); ?>             
            </div> 
</div> 
<div class="itemm w_60 web">
    <?php echo image_html($images[1]); ?>
            <div class="item-overlay">
                    <?php echo category($images[1]); ?>
            </div> 
</div>

<?php echo image_html($images[0]); ?>在页面上正确显示,但<?php echo category($images[0]); ?>却没有。它是空的。

在数据库中我Name subname的想法是在Name上显示<span class="item-title">'.$parts1[0].'</span> subname<span class="item-cat"> '.$parts1[1].'</span>'

为什么没有显示任何内容?

1 个答案:

答案 0 :(得分:2)

请注意,category()变量$category中的$parts1不等于$parts1

您在category()方法的正文中使用了错误或未定义的变量$parts1

<强>更新

根据您的评论,如果您想在类别方法中访问$parts1,那么您必须将function category($image,$parts1){} 作为函数参数传递:

$parts1

否则,由于可变范围问题,您无法访问$parts1=explode(" ",$mainTitle1);

最重要的是,category()只返回数组中的最后一条记录意味着它只包含一条记录。

但是,根据$image方法的正文,您在此处未使用$parts1,因此您只能在此方法中传递asset pipeline