微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐