mysqli_multi_query-将结果分成列

问题描述

我有七个正在使用MysqLi_multi_query函数执行的SQL查询

if (MysqLi_multi_query($conn,$airlinesql)) {
  do {
    if ($result = MysqLi_store_result($conn)) {
      while ($row = MysqLi_fetch_row($result)) {
        HELP!!
      }
      MysqLi_free_result($result);
    }
  } while (MysqLi_next_result($conn));
}
//Build and fill HTML table
HELP!!

七个查询中的每个查询每行仅返回一个元素,但是每个查询返回的的数目是未知的-甚至可以为NULL。我希望每个查询结果在HTML表格中填充其自己的单独的。换句话说,第一查询可返回5行,每行仅具有一个元素。我希望这5个元素中的每一个都进入HTML表第一列中的自己的行。第二查询结果可以返回1个元素。该元素应位于 second 列的第1行中。等等。尽管每个查询返回的行数是未知的(甚至可能为null),但列数固定为7(因为这是查询数)。我猜想将所有结果都放入一个数组中是正确的主意,但是我无法弄清楚如何使用while / for循环从数组中构建表,因为您通常是逐行构建的,而我的思维却停留在逐列构建中由于每个查询返回的行数未知。或者,也许有比使用MysqLi_multi_query更好的方法?感谢您的帮助。

解决方法

接受了CBroes的建议。我知道...这很丑陋,可能效率很低,但确实有效。谢谢你的帮助。我上一次进行编码的时间是在1992年使用FORTRAN,因此我需要获得的所有帮助!

const inClause = ids.map(id=>"'"+id+"'").join();

const query =  `SELECT * FROM docs d WHERE d.id IN (${inClause})`;