Php 当所选选项更改时,是否应动态生成数据库查询?

Php 当所选选项更改时,是否应动态生成数据库查询?,php,javascript,mysql,Php,Javascript,Mysql,我正在从MySQL数据库生成一个select选项。在第二个查询中,我显示了来自同一数据库的列表。我现在打算使用JavaScript来匹配第一个选择和第二个选择,但我想知道,如果每次选择的选项更改时都进行新的查询,是否会比这样做更好。有什么想法吗?有没有人遇到过这样的事情,如果有,是什么表现更好 include("conexion.php"); $result = mysqli_query($conn,"SELECT * FROM `user_list` WHERE `user_id`=$ore

我正在从MySQL数据库生成一个select选项。在第二个查询中,我显示了来自同一数据库的列表。我现在打算使用JavaScript来匹配第一个选择和第二个选择,但我想知道,如果每次选择的选项更改时都进行新的查询,是否会比这样做更好。有什么想法吗?有没有人遇到过这样的事情,如果有,是什么表现更好

include("conexion.php");

$result = mysqli_query($conn,"SELECT * FROM `user_list` WHERE `user_id`=$oreo AND  `visibility` =  '0' ORDER BY `item_num` DESC ");
$result2 = mysqli_query($conn,"SELECT DISTINCT(`group`) FROM `user_list` WHERE `user_id`=$oreo AND  `visibility` =  '0'");

echo "<div> <select id='groopy' onChange='selectivo();'>";

while($row = mysqli_fetch_array($result2)) {
    $group_name = $row['group'];
    echo "<option>".$group_name."</option>";
}

echo "</select></div>";
echo "<ul id='groopy'>";

while($row = mysqli_fetch_array($result)) {
      $group_name = $row['group'];
      $item_num = $row['item_num'];
      $tit_sup = $row['tit_sup'];
      $url = $row['url'];

      echo "<li alt='".$group_name."'>".$tit_sup."</li>";
}

echo " </ul>";
include(“conexion.php”);
$result=mysqli\u query($conn,“从`user\u list`中选择*,其中`user\u id`=$oreo和`visibility`='0'按`item\u num`DESC'排序”);
$result2=mysqli\u查询($conn,“从`user\u list`中选择DISTINCT(`group`),其中`user\u id`=$oreo和`visibility`='0');
回声“;
while($row=mysqli\u fetch\u数组($result2)){
$group_name=$row['group'];
回显“$group_name.”;
}
回声“;
回声“”;
while($row=mysqli\u fetch\u数组($result)){
$group_name=$row['group'];
$item_num=$row['item_num'];
$tit_sup=$row['tit_sup'];
$url=$row['url'];
echo“
  • “$tit\u sup.”
  • ”; } 回声“”;

    我现在就是这样做的,我不知道确切的原因,但我真的不喜欢它(它不会带来任何问题,但我猜当有很多内容时,它会减慢一切)。

    如果我理解正确,您正在寻找一种能够扩展到大量组/用户且不会对性能造成太大影响的解决方案

    我的想法是:

    • 有了合理数量的数据,当前的解决方案是最负责任的解决方案,您已经拥有了用户端的一切,只需过滤所选组上的列表
    • 随着数据库的增长,您可以稍微重写它,只加载所选组的用户,这可以通过两种方式实现:
      • 整个页面在选择更改后重新加载-这可能有助于在禁用javascript的浏览器中保持功能正常工作,但我会选择下一个
      • 首先显示一个空列表(或默认列表),并在选择更改时使用AJAX加载userlist;这个想法可以更进一步,缓存加载的用户列表,并从缓存中填充

      为了获得更好、更准确的意见,最好知道您打算何时、如何以及为了什么目的使用组选择和用户列表,但到目前为止,我看到上述所有可能性都可用。

      Hi@Daniel!我看到你一直在撤销用户对你的帖子所做的编辑。用户真的在试图帮助和改进您的问题。人们普遍认为,任何与问题不直接相关的内容都应该删除,因为这只会在帖子中增加“噪音”。像“提前感谢”或“可能是个愚蠢的问题”这样的内容对理解问题没有帮助。将来,如果你担心有人可能“诽谤”你的帖子,你应该留下评论,询问编辑背后的理性是什么。你会发现人们非常愿意解释你如何改进你的帖子,这样你就有更好的机会得到答案。感谢你的回答,缓存将是我同意的最好方式,但每次会话后都会被清除,只为这篇文章重新加载整个页面似乎也不正确。我想我会一直坚持下去,直到我能想到一些在后台运行的东西或其他东西……但再次感谢。