Php 获取通知系统的数组中的名称

Php 获取通知系统的数组中的名称,php,mysql,arrays,notifications,Php,Mysql,Arrays,Notifications,你好,我正在尝试从我的通知系统的数据库中获取数组中的名称。这样我就有了3个条件。在第二和第三节中,我需要数组中的名称,有人能帮我完成代码吗。另外,在$result查询中,我无法避免相同用户的结果,即我想john对我的状态评论了两次,然后只应选择一个结果,我使用了distinct,但没有成功 所以基本上有两个问题 使用数组从数据库中获取多个名称 避免使用相同的用户名会导致为数组选择用户名 有人能帮忙吗,这是一个大模块,卡得很厉害。谢谢 <?php include_once("includes

你好,我正在尝试从我的通知系统的数据库中获取数组中的名称。这样我就有了3个条件。在第二和第三节中,我需要数组中的名称,有人能帮我完成代码吗。另外,在$result查询中,我无法避免相同用户的结果,即我想john对我的状态评论了两次,然后只应选择一个结果,我使用了distinct,但没有成功

所以基本上有两个问题

  • 使用数组从数据库中获取多个名称
  • 避免使用相同的用户名会导致为数组选择用户名
  • 有人能帮忙吗,这是一个大模块,卡得很厉害。谢谢

    <?php
    include_once("includes/connection.php");
    $result = mysql_query("SELECT distinct * from notification inner join  users_profile on notification.owner_user_id=users_profile.uid where notification.user_id=3 and notification.user_id!=notification.owner_user_id order by notification.time_stamp Desc");
    while ($row=mysql_fetch_array($result)) {
        $nfname[]=$row["fname"];
        $npicid[]=$row["profile_pic"];
        $sql2 =mysql_query( "SELECT COUNT(type_id) FROM notification where type_id='wall_comments' and user_id='3' and is_seen='0'"); 
        while($row2=mysql_fetch_array($sql2)) {
            $req_pending=$row2['COUNT(type_id)'];
            $req_pending1=$row2['COUNT(type_id)']-3;
            if ($req_pending==1) {
                $result="$fname shared view on your Status Update";
            }
            elseif ($req_pending==3) {
                $result="$nfname shared views on your Status Update";
            }
            else  {
                $result="$nfname  and $req_pending1 shared their views on your Status Update";
            }
        }
    }
    ?>
    

    我将按顺序回答您的问题:

    问题1:“是否有任何方法可以让我从两个同名记录中只取一个名”

    对。如果数据表中有多条记录具有相同的名称,则可以使用
    distinct
    sql命令仅选择其中的一条记录。但是,当选择
    *
    时,您的记录中的其他字段可能是唯一的,因此也会被选择。以下是一个例子:

    我的表格中的数据:


    用户名|已创建#您好,谢谢您帮助大家。我解决了我的问题@sadmircowave谢谢你的建议否则就死(“查询失败:”.mysql_error())。我所做的就是改变了
    $result到$sql1,while($row=mysql\u fetch\u array($result))到($row=mysql\u fetch\u array($sql1))。我认为使用相同的名称可能会导致问题,而数组

    如果表中有datetime或timestamp字段,则distinct将获得所有多个用户两次,因为您选择的是
    *
    ,并且每个记录的datetime不同。另外,您还没有真正解释在获取数组中的名称时面临的问题。看起来您已经通过
    $nfname[]=$row[“fname”]实现了这一点感谢您的回复,第一种方式是我只能从两条同名记录中得到一个名称,第二种方式是我收到警告:mysql\u fetch\u array()希望参数1是资源,字符串在C:\wamp\www\mihubs\test.php第5行中给出,使用arrayhello时出现错误,谢谢大家的帮助。我解决了我的问题@sadmircowave谢谢你的建议否则就死(“查询失败:”.mysql_error())。我所做的是将$result改为$sql1,而($row=mysql\u fetch\u array($result))改为($row=mysql\u fetch\u array($sql1))。我认为使用相同的名称可能导致了这个问题,而数组部分现在也在运行。
    
    "SELECT DISTINCT * FROM MYTABLE" 
    
    "SELECT DISTINCT Username FROM MYTABLE" 
    
     $myresults = mysql_query("SELECT DISTINCT Username FROM MYTABLE") 
                  or die("query failed:" . mysql_error() );