首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能在php mysql中显示我的记录?

为什么我不能在php mysql中显示我的记录?
EN

Stack Overflow用户
提问于 2013-06-24 19:54:28
回答 3查看 115关注 0票数 0

我的数据库中有记录,但无法显示它们。有人能检查一下我的密码吗。我只是个业余的网页开发人员。谢谢你的帮助。

代码语言:javascript
复制
<?php
$groups=mysql_query("SELECT * FROM groups ORDER BY id ASC");
$g_res=mysql_affected_rows();
if($g_res>0)
{
while($row=mysql_fetch_array($groups))
{
    $g_id=$row['id'];
    $g_name=$row['g_name'];

    $members=mysql_query("SELECT * FROM members WHERE group='$g_id'");
    $m_res=mysql_affected_rows();
    if($m_res>0)
    {
        while($row2=mysql_fetch_array($members))
        {
            $m_id=$row2['id'];
            $m_name=$row2['m_name'];
            $m_email=$row2['m_email'];
            echo "<tr><td>$m_name<br/>($g_name)</td><td>$m_email</td></tr>";
        }
    }
    else
    {
    echo "<tr><td colspan=2>Nothing to display</td></tr>";
    }
}
}
else
{
echo "<tr><td colspan=2>Error</td></tr>";
}
?>

使用这段代码,我得到了Errorelse结果。如果我从查询中删除WHERE group='$g_id',我的所有记录都会随机显示,但我希望按组显示我的记录(成员)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-24 19:55:36

你需要像group一样用反引号来转义reserved words in MySQL

代码语言:javascript
复制
SELECT * FROM members WHERE `group` = '$g_id'
                            ^-----^-------------here

当您像这样连接数据时,也可以省去内循环

代码语言:javascript
复制
select g.id as gid, g.g_name, m.id as mid, m.m_name, m.m_email
from groups g
inner join members m on g.id = m.group
order by g.id asc

这更容易,而且会提高性能,因为您不需要执行很多查询,而只需要执行一个查询。

也请使用don't use mysql_* functions in new code。它们不再被维护,而是officially deprecated。了解预准备语句,并使用PDOMySQLi。查看this article可以快速了解如何做到这一点,以及为什么它如此重要。

票数 3
EN

Stack Overflow用户

发布于 2013-06-24 19:55:48

尝试像这样

代码语言:javascript
复制
$members=mysql_query("SELECT * FROM members WHERE `group` = '".$g_id."');

或者简单地说

代码语言:javascript
复制
$members=mysql_query("SELECT * FROM members WHERE `group` = '$g_id'");
票数 0
EN

Stack Overflow用户

发布于 2013-06-24 19:56:03

你必须连接你的变量。试试这个:

代码语言:javascript
复制
$members=mysql_query("SELECT * FROM members WHERE `group`='".$g_id."'");

echo "<tr><td>".$m_name."<br/>(".$g_name.")</td><td>".$m_email."</td></tr>";

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17274855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档