PHP MySQL 多个查询合而为一

标签 php mysql

我正在尝试找到一种更好的方式来显示我的实体关系。我的数据库由 3 个表组成:members、fees 和 Fees_has_members。

一名成员(member)可以收取多项费用,反之亦然。问题是当我想显示所有成员(member)及其相应费用时,我的 while 循环会遍历所有实体并在每次循环时显示所有信息。

循环显示如下:

Member A
Fee B
200 $

Member A
Fee C
230 $

Member A
Fee B
200 $

我想显示一次成员(member)以及所有相关费用。

代码:

 <?php 
mysql_connect("#######", "########", "######") or die(mysql_error());
mysql_select_db("#####") or die(mysql_error());
?>

<h3>Members:</h3>
<?php
 $result = mysql_query("SELECT boder_boder_id, medlemmer_medlemmer_id, medlemmer_navn, medlemmer_id, boder_navn, boder_id, boder_pris FROM boder_has_medlemmer, medlemmer, boder WHERE boder_boder_id = boder_id AND medlemmer_medlemmer_id = medlemmer_id");
 ?>

 <?php
 if (mysql_num_rows($result) == 0)
 echo "Query returned 0 rows";
 ?>

 <?php
 $samlet = 0;
 while($row = mysql_fetch_array($result))
 { ?>

 <p>
 <?php
  echo $row[medlemmer_navn].'<br>'; 
  echo $row[boder_navn].'<br>';
  echo $row[boder_pris].' kr.';
  $samlet += $row[boder_pris];
 ?>
 </p>

我知道我可以更改 MySQL 查询以包含特定的成员(member)名称,但随后我必须运行 30 个查询才能显示所有成员(member)及其费用。

我希望我已经说清楚了。

有什么建议吗?

最佳答案

你对每个成员进行查询的想法很愚蠢:D

试试这个。

<?php
mysql_connect('#######', '########', '#######') or die(mysql_error());
mysql_select_db('#####') or die(mysql_error());

echo '<h3>Members:</h3>';

$result = mysql_query('SELECT `boder_boder_id`, `medlemmer_medlemmer_id`, `medlemmer_navn`, `medlemmer_id`, `boder_navn`, `boder_id`, `boder_pris` FROM `boder_has_medlemmer`, `medlemmer`, `boder` WHERE `boder_boder_id` = `boder_id` AND `medlemmer_medlemmer_id` = `medlemmer_id`;');

if (!mysql_num_rows($result))
{
    echo 'Query returned 0 rows';
}

$samlet = 0;
$medlemmers = array();
while($row = mysql_fetch_array($result))
{
    $medlemmers[$row['medlemmer_navn']][] = $row;
}

foreach($medlemmers as $navn => $medlemmer)
{
    echo '<p>';
    echo $navn . '<br />';
    foreach($medlemmer as $row)
    {
        echo $row['boder_navn'] . '<br />';
        echo $row['boder_pris'] . ' kr.';
        $samlet += $row['boder_pris'];
    }
    echo '</p>';
}

尚未经过测试,但应该朝正确的方向发展 ^^

关于PHP MySQL 多个查询合而为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25761727/

相关文章:

mysql - SQL - 更新多个表,其中内部联接值来自第三个表

php - 从表单发送的电子邮件中显示的输出不以泰语显示

php - Laravel 为商店进行设置

mysql - 如何从 Oracle SQL 转储中获取数据

php - 如何从 PHP 中的 XML 文档中检索注释

php - 关于通过 mysqli 使用更新

java - 使用 OneToOne 映射在 Spring Hibernate 中反序列化异常

php - 在php中组合多个sql查询

php - Perl 有类似 PHP 的动态变量吗?

javascript - Facebook,在新窗口中发布标签以获取链接和 FORM