微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何在一行中显示SQL查询结果?

我想出去试图让它发挥作用,我在这里,我有3张桌子.我认为向你展示表格是“tblhosting”,“tblhostingconfigoptions”和“tblcustomfieldsvalues”会更好.这可以在sqlfiddle设置中看到:http://sqlfiddle.com/#!9/6c153/1

我想要完成的是将它放在一行,见图:

下面是我的SQL查询

SELECT disTINCT 
t1.domainstatus,t1.server,t1.dedicatedip,t1.packageid,t1.regdate,t1.nextduedate,t2.value,t2.fieldid,t3.configid,t3.qty
FROM tblhosting t1
INNER JOIN tblcustomfieldsvalues t2 
ON t2.relid = t1.id 
INNER JOIN tblhostingconfigoptions t3 
ON t3.relid = t1.id
WHERE t3.configid IN (126,127,128) AND t2.fieldid IN
(83,84,85,86,87,88,90,91,92,93,208) ORDER by t1.id -- I use to have GROUP by t1.id and get 1 line for the 126 but then 127 128 will not be produced.

我会隔离< td>只是问题,它都在这PHP代码中:

$sql = MysqL_query($queryText);

while($row = MysqL_fetch_array($sql)) {

  $qty = $row['qty'];
  $configid = $row['configid'];

  echo 'figid == 126) { echo '4' } echo'display there
  echo 'figid == 127) { echo '0'} echo'display there 
  echo 'figid == 128) { echo '0' } echo'display there

….上面的想法是使$configid匹配126或127或128,并相应地输出行qty为4 0 0并且不输出3次“ded13526”并且输出4然后下一行0然后下一行0.

希望它有足够的解释,我不想发布整个代码混淆,很明显IN语句有80到93然后208,这个确切的条目只有93 ..

我只是不知道出了什么问题..

最佳答案
如果我正确理解您的问题,可以解决以下问题:

SELECT disTINCT 
t1.domainstatus,(SELECT qty FROM tblhostingconfigoptions WHERE relid = t1.id AND configid = 126) AS qty126,(SELECT qty FROM tblhostingconfigoptions WHERE relid = t1.id AND configid = 127) AS qty127,(SELECT qty FROM tblhostingconfigoptions WHERE relid = t1.id AND configid = 128) AS qty128
FROM tblhosting t1
JOIN tblcustomfieldsvalues t2 ON t2.relid = t1.id 
WHERE t2.fieldid IN (83,208)
while($row = MysqL_fetch_array($sql)) {
  ...
  echo '

原文地址:https://www.jb51.cc/mysql/433974.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐