【问题标题】:How to first get different related values from different SQL tables (PHP)如何首先从不同的SQL表中获取不同的相关值(PHP)
【发布时间】:2017-03-17 23:12:45
【问题描述】:

我很想填写选项列表。我有 2 个表 USERS 和 STREAMS 我想获取所有流并获取分配给该流的用户的名称。

用户由用户名和id组成

Streams 由 id、userID、streamID 组成

我试试这样的代码:

<?php           
        global $connection;
        $query = "SELECT * 
        FROM streams ";
        $streams_set = mysql_query($query, $connection);
        confirm_query($streams_set);    
    $streams_count = mysql_num_rows($streams_set);
    while ($row = mysql_fetch_array($streams_set)){
            $userid = $row['userID'];
                global $connection;
        $query2 = "SELECT email, username ";
        $query2 .= "FROM users ";
        $query2 .= "WHERE id = '{$userid}' ";

        $qs = mysql_query($query2, $connection);
        confirm_query($qs); 
        $found_user = mysql_fetch_array($qs);


 echo ' <option value="'.$row['streamID'].'">'.$row['userID'].$found_user.'</option> ';
}
    ?>

但它不会从 DB=( 那么我应该如何处理此代码以将用户名视为“选项”文本?

【问题讨论】:

  • 只是为了确定你想要做什么:每个用户只能在一个流上吗?
  • 你的代码中有一个无限循环。如果你想让while语句成为你想要的循环,你应该像@VolkerK那样写。
  • @SpawnCxy:虽然我鼓励人们像我一样编写循环条件 ;-) 它也应该像 Ole 所写的那样按预期工作。

标签: php mysql html forms request


【解决方案1】:

您可以通过在streams.userID=users.id 上包含JOIN 的查询来做到这一点

$query = "
  SELECT
    s.streamId,
    s.userId,
    u.username
  FROM
    streams as s
  JOIN
    users as u
  ON
    s.userId=u.id
  ";
$result = mysql_query($query, $connection);
confirm_query($result);
echo '<option value="">Debug: #rows=', mysql_num_rows($row), '"</option>';

while ( false!==($row=mysql_fetch_array($result)) ) {
  sprintf('<option value="%s">id:%s name:%s</option>',
    $row['streamID'], // you probably should apply htmlspecialchars()
    $row['userID'], // on these two, too.
    htmlspecialchars($row['username'])
  );
}

【讨论】:

  • 顺便说一句,您的代码中有一些关于 beeg 或小字母 ( s.streamId -> $row['streamID']) 的错误
  • 大部分时间我都在测试我发布的代码,有时不是......就像在这种情况下;-) 抱歉。
猜你喜欢
  • 1970-01-01
  • 2023-02-07
  • 2015-02-23
  • 1970-01-01
  • 2021-02-10
  • 2018-10-05
  • 1970-01-01
  • 2021-06-06
  • 2021-10-05
相关资源
最近更新 更多