如何使用一个查询在php mysql中选择和获取两个表数据?

时间:2016-07-11 15:44:32

标签: php mysql sql

我收到此错误:操作数应包含以下代码中的1列

$select = mysql_query("SELECT (SELECT id_post,id_category,id_user,title,description,image,date_added FROM r_post) as id_post,id_category,id_user,title,description,image,date_added ,(SELECT name FROM r_category) as categoryname")or die(mysql_error());

while ($result = mysql_fetch_assoc($select)) {

    <div class="tc-ch">     
    <?php if(!empty($result['image'])){?>
        <div class="tch-img">
            <a href="/<?=$result['seo_url']?>"><img src="admin/images/<?= $result['image'] ?>" class="img-responsive" alt=""/></a>
        </div>
        <a class="blog blue"><?= $result['name'] ?></a>
        <?}?>
        <h3> <a href="/<?=$result['seo_url']?>"><?= $result['title'] ?></a></h3>
        <p><?= $result['description'] ?></p>
        <div class="blog-poast-info">
            <ul>
                <li><i class="glyphicon glyphicon-user"> </i><a class="admin" href="#"><?= $result['id_user'] ?> </a></li>
                <li><i class="glyphicon glyphicon-calendar"> </i><?= $result['date_added'] ?></li>
                <li><i class="glyphicon glyphicon-comment"> </i><a class="p-blog" href="#"><?= $result['categoryname'] ?></a></li>
            </ul>
        </div>
    </div>
<?php } ?>

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果列不匹配(您可以使用联合)或者您想要加入,则不能在一个查询中选择两个表。

没有看到数据库的结构,我不能肯定地说,但在我看来,你想在id_category上加入这些,如下所示:

SELECT id_post, id_category, 名称AS类别名称,id_user,title,description,image,date_added FROM r_post rp INNER JOIN r_category rc ON rc.id_category = rp.id_category

如果我的假设对您的数据库有误,请说明您的具体需求。此外,为了将来参考,因为这纯粹是一个SQL问题,只需发布​​您的查询和有关您的数据库的信息,这样我们就不会迷失在所有其他不相关的代码中。

编辑如何获取结果:

你做得对

while ($result = mysql_fetch_assoc($select))

这会迭代每一行。您需要做的就是使用

echo $result['col_name'];
在PHP代码中

。例如,对于段落标记,您将使用:

<p><?php echo $result['description']; ?></p>

基本上将结果打印到HTML代码中。