Php 使用ID数组执行单个数据库查询

Php 使用ID数组执行单个数据库查询,php,mysql,x-cart,Php,Mysql,X Cart,我试图对db执行一个查询,在其中我使用一个ID数组插入WHERE子句。到目前为止,我的成绩参差不齐,这是我最接近实现我所追求的目标的一次 $prodId = array(17754, 17755, 17756); $ids = implode(",",$prodId); $qry = "SELECT clean_url AS url FROM xcart_clean_urls WHERE resource_id IN ($ids) "; $resultTst = db_query($qry);

我试图对db执行一个查询,在其中我使用一个ID数组插入WHERE子句。到目前为止,我的成绩参差不齐,这是我最接近实现我所追求的目标的一次

$prodId = array(17754, 17755, 17756);
$ids = implode(",",$prodId);

$qry = "SELECT clean_url AS url FROM xcart_clean_urls WHERE resource_id IN ($ids) ";
$resultTst = db_query($qry);

while ($result_row = db_fetch_array($resultTst)) {
   $urls[] = $result_row;
   if ( $urls ) {
      echo $urls[0]['url'] . '<br>';
      echo $urls[1]['url'] . '<br>';
      echo $urls[2]['url'] . '<br>';
   }
}
$prodId=array(177541775517756);
$ids=内爆(“,”,$prodId);
$qry=“从资源id位于($ids)中的xcart_clean_url中选择clean_url作为url”;
$resultTst=db\u查询($qry);
而($result\u row=db\u fetch\u数组($resultTst)){
$URL[]=$result\u行;
如果($URL){
echo$url[0]['url'].
; echo$url[1]['url'].
'; echo$url[2]['url'].
; } }
我得到的结果(我得到了实际的URL):
urlforid17754

urlforid17754
urlforid17755

urlforid17754
urlforid17755
urlforid17756

如何执行相同的功能,但只检索3个URL一次


谢谢大家。

您试图通过循环每次回显3行。将它们移出循环或只回显
$result\u行
。如果不需要回显,则只需在循环后使用
$url
。URL似乎位于
URL
列中,因此:

while ($result_row = db_fetch_array($resultTst)) {
   echo $result_row['url'];
   $urls[] = $result_row;
}

//to see what $urls contains
print_r($urls);
我不知道您希望
$url
包含什么,但是如果您只想要一个维度,那么在循环中使用它:

   $urls[] = $result_row['url'];

您试图通过循环每次回显3行。将它们移出循环或只回显
$result\u行
。如果不需要回显,则只需在循环后使用
$url
。URL似乎位于
URL
列中,因此:

while ($result_row = db_fetch_array($resultTst)) {
   echo $result_row['url'];
   $urls[] = $result_row;
}

//to see what $urls contains
print_r($urls);
我不知道您希望
$url
包含什么,但是如果您只想要一个维度,那么在循环中使用它:

   $urls[] = $result_row['url'];

选择DISTINCT
?您试图通过循环每次回显3行。将它们移出循环或只回显
$result\u行
。如果不需要回显,则只需在循环后使用
$url
。尝试使用distinct<代码>从xcart\u clean\u url中选择不同的clean\u url作为url,其中资源id位于($ids)各位,查询不是问题所在。这是我逻辑中的问题……因为查询处理的是“foreach”过程,我真的不确定如何吐出来。如果我删除while(),它只是回显数组。
选择DISTINCT
?您试图通过循环每次回显3行。将它们移出循环或只回显
$result\u行
。如果不需要回显,则只需在循环后使用
$url
。尝试使用distinct<代码>从xcart\u clean\u url中选择不同的clean\u url作为url,其中资源id位于($ids)各位,查询不是问题所在。这是我逻辑中的问题……因为查询处理的是“foreach”过程,我真的不确定如何吐出来。如果我删除while(),它只是回显数组,$URL将包含一个URL数组,该数组将通过ajax传递给js文件。我假设将它们作为数组或逗号分隔的字符串发送,然后我可以在js中用逗号分割它们。我假设将它们作为数组或逗号分隔的字符串发送,然后在js中用逗号分隔它们。