>我有一些SQL查询,第一个选择客户,第二个选择扩展列表。
<?php
$sql2="SELECT * from client where parent_client_id = '1234' "; $rs2=mysql_query($sql2,$pbx01_conn) or die(mysql_error()); $count = mysql_num_rows($rs2); ?>
<table width="600" border="0" cellspacing="5" cellpadding="5">
<tr>
<td colspan="5"><strong>My VoIP Extensions (<?php echo $count; ?>)</strong></td>
</tr>
<tr>
<td width="30%"><strong>Name</strong></td>
<td width="30%"><strong>Extension Number</strong></td>
<td width="30%"><strong>Type</strong></td>
</tr>
<?php
while($result2=mysql_fetch_array($rs2))
{
$sql3="SELECT * from extension where client_id = '".substr($result2["id"],1)."' ORDER BY FIELD(type, 'term', 'queue', 'ivr', 'voicecentre', 'conference', 'callback', 'intercom', 'queuecentre') ";
$rs3=mysql_query($sql3,$pbx01_conn) or die(mysql_error());
$result3=mysql_fetch_array($rs3);
if($result3["type"] == 'term')
{
$type = 'Phone Terminal';
}
elseif($result3["type"] == 'queue')
{
$type = 'Queue';
}
elseif($result3["type"] == 'ivr')
{
$type = 'IVR';
}
elseif($result3["type"] == 'voicecenter')
{
$type = 'Voicemail Centre';
}
elseif($result3["type"] == 'conference')
{
$type = 'Conference';
}
elseif($result3["type"] == 'callback')
{
$type = 'Callback';
}
elseif($result3["type"] == 'intercom')
{
$type = 'Intercom';
}
elseif($result3["type"] == 'queuecenter')
{
$type = 'Queue Login Centre';
}
echo '<tr class="notfirst" style="cursor:pointer;" onclick="document.location=''sip:'.$result["customerid"].'*'.$result3["number"].'''">
<td>'.$result2["name"].'</td>
<td>'.$result["customerid"].'*'.$result3["number"].'</td>
<td>'.$type.'</td>
</tr>';
}
?>
</table>
在我的$sql3
上,我有一个按字段排序:ORDER BY FIELD(type, 'term', 'queue', 'ivr', 'voicecentre', 'conference', 'callback', 'intercom', 'queuecentre')
但它的排序不正确。 我认为这是因为 Order by 子句不在 while 循环中。
我怎样才能绕过它,以便它按照我想要的方式订购?
在我看来
,您在错误的位置对查询进行排序,但在不知道预期输出是什么的情况下,这是对您$sql 2查询应该是什么的猜测:
SELECT client.* from client where parent_client_id = '1234'
JOIN extension on extension.client_id = client.client_id
ORDER BY FIELD(extension.type, 'term', 'queue', 'ivr', 'voicecentre', 'conference', 'callback', 'intercom', 'queuecentre')
另外 - 请注意@tadman的评论并使用mysqli
并正确转义您的数据。