【问题标题】:Only show result of sql query on database table1 if there is a value in table 2如果表 2 中有值,则只显示对数据库 table1 的 sql 查询结果
【发布时间】:2017-03-21 14:27:24
【问题描述】:

我正忙于创建一个允许人们举办晚宴并允许用户参加这些晚宴的网站。我有两个不同的数据库表,称为 gebruikers(用户)和 diner(晚餐)。我正在开发一个搜索页面,使用户可以搜索 woonplaats(城市),然后显示居住在该城市的用户。这现在有效,但我想确保只显示添加了晚餐的用户。两个表中有一个共同的键:diner.gebruikersid = gebruikers.id 因此,换句话说,我只希望在 diner 和 gebruikers 表中具有其 ID 的用户显示在搜索结果中。我怎样才能做到这一点?

我现在有这个代码:

$zoeken = $_POST['woonplaats'];
    $sql = "SELECT id, voornaam, straatnaam FROM gebruikers WHERE woonplaats LIKE '$zoeken'"; 
    $result = mysql_query($sql); 



    echo "<div class=res>"; 
    echo "<h3>Resulaten voor " .$zoeken. "</h3>";
    echo "<table>";
    echo "<thead>";
    echo "<tr>";
    echo "<th>Voornaam</th>";
    echo "<th>Straatnaam</th>";
    echo "<th></th>"; 
    echo "</tr>";
    echo "</thead>";

while($row = mysql_fetch_assoc($result)) {
    echo "<tbody>";
    echo "<tr>";
    echo "<td>".$row['voornaam']."</td>";
    echo "<td>".$row['straatnaam']."</td>";
    echo "<td>";
    echo "<form action='eetprofiel.php' method='post'>";
    echo "<input type='hidden' name='id' value='".$row['id']."'>";
    echo "<input type='submit' value='Profiel bekijken'>"; 
    echo "</form>";
    echo "<td>"; 
    echo "</tr>";
    echo "</tbody>";
}


    echo "</table>";
    echo "</div>";



?>

编辑:

These are all the users in my database (in table gebruikers) with woonplaats Amersfoort

These are all the diners submitted by those users.

如您所见,具有 gebruikers.id 和 diner.gebruikersid 23 的用户没有提交晚餐,所以我不希望他出现在搜索结果中。

【问题讨论】:

  • 阅读一些关于 SQL INNER JOIN 的内容。
  • 请看一下mysqli或pdo,因为mysql已被弃用
  • @etsa 我知道它与内部连接有关,但我不知道如何使用它,因为我不想从餐桌上获取任何数据,我只想显示一个用户,如果他在餐桌上有他的 ID。你能更具体地解释一下我应该在哪里看吗?
  • 如果您需要更多帮助,请报告一些测试数据和预期输出。帮助你会更容易。
  • @etsa 我已经编辑了我的答案。只能发两个链接。这是第三张图片:i.stack.imgur.com/Ad7Yv.jpg 这是我目前收到的结果。我不希望 id 为 23 的用户显示在结果中,因为他不在餐桌上。

标签: php mysql database mysqli


【解决方案1】:

您应该加入 2 个表。用JOIN看看这个

https://www.tutorialspoint.com/mysql/mysql-using-joins.htm

连接示例

select tableA.user ,tableB.user from tableA JOIN tableB on tableA.id = tableB.id 

注意:不要使用mysql,不推荐使用mysqli或PDO

【讨论】:

  • 我知道这与内部连接有关,我对此很熟悉。但是我不知道如何将其用于这个原因,因为我不想从餐桌上获取任何数据,我只想显示一个用户,如果他在餐桌上有他的 ID。你能更具体地解释一下我应该看哪里吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
相关资源
最近更新 更多