dongzhang6544 2011-10-27 23:52
浏览 63
已采纳

PHP / MySQL根据以前的if语句输出指定的字段

If $userid equals $row['RequestRecipientID'] then the script will output all $row['StatusType'] which equals "Accepted". What I'm needing for this script to do is only output the $row['StatusType'] which equals to the $userid. Any ideas?

<?php
include("enc.php");
mysqlcon();
$userid = $_SESSION['userid'];
$results = mysql_query("SELECT requests.RequestRecipientID, requests.StatusType, requests.AddedMessage, requests.FriendType, requests.RequestSentByID, requests.id, users.username, users.firstname, users.lastname, users.email, users.user_pid, users.id FROM requests, users");
while($row = mysql_fetch_array($results)) {
    if ($userid == $row['RequestRecipientID']) {
        if ($row['StatusType'] == "Accepted") {
        echo $row['firstname'] . "has accepted your friend request."; // place inside  notification pane
    } elseif ($row['StatusType'] == "Denied") {
        echo $row['RequestSentByID'] . " has denied your request.";
    } elseif ($row['StatusType'] == "Pending") {
    echo "<span class='text1'>";
    echo $row['firstname'] . " " . $row['lastname'] . "<br>" . $row['AddedMessage'] . "</span>";
    echo "<form method='GET' action='protected/process-friend-request-action.php?" . $row['id'] . "'>";
    echo '<input class="action_button" name="accepted" type="submit" value="Accept" />';
    echo '<input class="action_button" name="denied" type="submit" value="Deny" />';
    echo '<input type="hidden" name="id" value="' . $row["id"] . '" />';
    echo '</form>';
    }
    }
}
?>
  • 写回答

2条回答 默认 最新

  • dqyq88053 2011-10-28 00:03
    关注

    If you only need results that is related to a userid you should first filter using SQL query.

    // Assuming that your SQL query is correct
    // added WHERE users.RequestRecipientID = '$userid'
    $results = mysql_query("SELECT requests.RequestRecipientID, requests.StatusType, requests.AddedMessage, requests.FriendType, requests.RequestSentByID, requests.id, users.username, users.firstname, users.lastname, users.email, users.user_pid, users.id FROM requests, users WHERE users.RequestRecipientID = '$userid'");
    
    // used fetch_assoc instead of fetch_array since you are 
    // not using numeric array
    while($row = mysql_fetch_assoc($results)) {
        // normally 3 is my limit to use if-else
        // if i have more than 3, i'll use switch
        if ($row['StatusType'] == "Accepted") {
            // accepted action
        }
        elseif ($row['StatusType'] == "Denied") {
            // denied action
        }
        else {
            // not denied & accepted action
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元