1

我正在从数据库中获取学校名称列表。当用户单击学校名称时,我希望代码获取与用户单击的学校名称相关的 2-3 个其他属性。

我的单一学校名单代码:

$query = mysql_query("Select schoolname, product, username, password from credentials c
join products p on p.productid = c.productid
join schools s on s.schoolid = c.schoolid
join icons i on i.productid = p.productid
order by s.schoolname");

echo '<ul>';
while($row = mysql_fetch_array($query))
{                   
echo "<li> <a href='#'>" . $row['schoolname'] . "</a> </li>";
}

回声'';

电流输出:

  • 学校A
  • 学校A
  • 学校B
  • 学校B
  • 学校B
  • 学校 C
  • 学校 C

预期输出:

  1. 学校名称仅显示一次(不同的不起作用,因为每个学校名称都有 2-3 个产品凭据

    • 学校A
    • 学校B
    • 学校 C
  2. 用户点击学校的能力。然后下方的学校名称将向下移动(切换效果),用户可以看到为点击的学校显示的产品、用户名和密码(例如:用户点击了学校 A)

    • 学校A
    • productname1、用户名、密码
    • productname2、用户名、密码

    • 学校B

    • 学校 C
4

1 回答 1

0

1)您应该使用 GROUP BY schoolname,但请注意,这只会为一个唯一的 schoolname 行提供一个值,因此您可能会丢失一些其他数据。此外,如果您想一次获取所有数据并且不丢失产品凭据,您可能需要多个 GROUP BY 语句

2)有几种方法可以做到这一点。您可以一次获取所有需要的数据,生成带有学校和隐藏产品名称的 html 输出,并通过 javascript 切换它们。

<div class = "school-name">
    School name 1
    <div class = "product-name" style="display: none;">Product1</div>
    <div class = "product-name" style="display: none;">Product2</div>
    <div class = "product-name" style="display: none;">Product3</div>
</div>

和 javascript,我正在使用 jquery

$(document).ready(function() {
    $('.school-name').on('click', function(e) {
        $(e.currentTarget).children('.product-name').show();
    }
});

只要您有少量数据,这种方法就可以正常工作。否则,最好使用 AJAX 调用来获取元素的子节点。

于 2013-10-21T21:50:58.753 回答