PHP内连接,当一个表有多个输出时使用foreach循环

我有一个情况,我有几个表,我从INNER JOIN拉出来.有一对多的关系,主表每个公园有一条线,但照片表可能有几条公园的线.我的代码的工作原理是为每个公园显示一张照片,但我只能显示一张照片.我怀疑问题是在foreach循环中,但我有点难过.这是代码

try
{
    $sql = 'SELECT parks.id, parks.state, parks.name, parks.description, parks.site, parks.sname, parks.street, parks.city, parks.zip, parks.phone, comments.comment, comments.commentname, events.event, events.date, events.description2, photos.parkid, photos.type, photos.filename, photos.big FROM parks
            INNER JOIN comments INNER JOIN photos INNER JOIN events ON parks.parkid = comments.parkid and parks.parkid = photos.parkid and parks.parkid = events.parkid
            GROUP BY parks.id
            ORDER BY parks.name asc';
    $result = $pdo->query($sql);
}

catch (PDOException $e)
{
    $error = 'Error fetching data: ' . $e->getMessage();
    include 'output.html.PHP';
    exit();
}

//This is pulling the information from the database for display. On the foreach it will display each
//line until there are no more lines to display.    
foreach ($result as $row)
{
    $datas[] = array ('id' =>$row['id'],
                'parkid' =>$row['parkid'],
                'state' =>$row['state'], 
                'name' =>$row['name'], 
                'description' =>$row['description'], 
                'site' =>$row['site'], 
                'sname' =>$row['sname'],
                'street' =>$row['street'], 
                'city' =>$row['city'], 
                'phone' =>$row['phone'],
                'zip' =>$row['zip'],
                'commentname' =>$row['commentname'],
                'comment' =>$row['comment'],
                'event' =>$row['event'],
                'date' =>$row['date'],
                'description2' =>$row['description2'],
                'type' =>$row['type'],
                'filename' =>$row['filename'],
                'big' =>$row['big']);
}    
include 'writing.html.PHP';

<?PHP    
foreach ($datas as $name)
{
    if ($name['state'] === 'PA') 
    {
?>  
        <a href="#header" title="return to the top of the page">Back to top</a>
        <input type="hidden" name="id" value="' . $name['id'] . '" />
        <h1 id="name"> <?PHP echo ($name['name']) ?> </h1>
        <p id="descriptionlist">
            <?PHP echo ($name['description']) ?>
            <br />
            <ul id="link">
                <li class="l1">
                    <a href=<?PHP echo $name['site'] ?> target="_blank"> <?PHP echo $name['sname'] ?> </a>
                </li>
            </ul>
        </p>

        <h2>Location</h2>
        <div class = "loc"> 
            <p class="loct">
                <a class = "fancyImg" href="maps/<?PHP echo $name['id'] ?>state.gif"> <img src= "maps/<?PHP echo $name['id'] ?>state.gif"> </a>
                <br />
                <PHP echo ($name['street']) . ?>
                <br />
                <?PHP echo ($name['city']) .  
                    ($name['state']) .
                    ($name['zip']) ?>
                <br>
                <?PHP echo ($name['phone']) ?> 
                <br> <br>
            </p>
        </div>

        <h2>Trail Map</h2>
        <div class = "map">
            <p class = "mapt"> 
                Click to Enlarge
                <a class ="fancyImg" href= "/maps/<?PHP echo $name['id'] ?>maplink.gif">
                    <img src= "/maps/<?PHP echo $name['id'] ?>.gif"></a> <br> <br> 
            </p>
        </div>

        <h2>Photos</h2>
        <div class = "pho">
            <p class = "phot">
                <a class = "fancyImg" href= "/assets/indiv/<?PHP echo $name['big'] ?>.gif"> 
                    <img src= "<?PHP echo $name['filename'] ?>.gif"></a>**
                Submit <i>your</i> photos of <?PHP echo ($name['name']) ?> through our <ul id = "link"><li><a href="https://www.facebook.com/Ride4Wheel">Facebook Page!</li></ul></a></h3><p> Or go to our Contact Us page for information on how to e-mail us your favorite pictures! 
            </p>
        </div>

手头的问题在这里的最后是pho div.我希望$name [‘big’]会给我这个循环的所有项目,但它只给我第一个.我在这里缺少一些基本的东西.

链接http://www.ride4wheel.com/new_ma.php

解决方法:

关系数据库结果将始终作为行返回,除了您的查询具有一对多的关系之外,我认为在您的情况下,您将不得不使用您的唯一ID再次循环并查找“大”字段的不同值.

我不认为你需要foreach循环来使你的结果像关联数组,你可能需要使用它:PDOStatement::fetchAll

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...