PHP检索结果

时间:2013-01-30 06:58:03

标签: php

我在检索结果方面遇到了一些小麻烦,希望有人可以帮助我。

我有一个名为$ incategory的字段,这是一个基于逗号的字符串,我想要做的是将其分解为一个可用于检索结果的数组,如下所示(希望有意义):

<?php 

$showlist = $row_listelements['incategory']; 

// ** e.g. $incategory = 1,3,5, 
// ** What I want to do is look at table 'category' 
// ** and retrieve results with an 'id' of either 1, 3 or 5

// ** Display Results
mysql_select_db($database_db, $db);
$query_display = "SELECT * FROM category WHERE id = ".$showlist." ORDER BY name ASC";
$display = mysql_query($query_display, $db) or die(mysql_error());
$row_display = mysql_fetch_assoc($display);
$totalRows_display = mysql_num_rows($display);

?>

3 个答案:

答案 0 :(得分:4)

您可以直接使用SQL的IN关键字。

query_display = "SELECT * FROM category WHERE id IN (".$showlist.") ORDER BY name ASC";

另一个提示是停止使用MYSQL_QUERY,因为它在PHP 5.3中已弃用

编辑:如果$ showlist ='1,3,5,'您需要从字符串中删除最后一个逗号,以使其在查询中可用。只需使用此查询

query_display = "SELECT * FROM category WHERE id IN ('".str_replace(",", "','", substr($showlist, -1))."') ORDER BY name ASC";

答案 1 :(得分:0)

使用explode函数并使用,作为分隔符。

请参阅此处http://www.w3schools.com/php/func_string_explode.asp

希望这有帮助。

答案 2 :(得分:0)

首先,您已将$incategory字符串分解为包含所有类别编号的数组。例如:

$incategory = explode(",", $incategory);

然后你只需要执行这个查询:

$query_display = "SELECT * FROM category WHERE id = "
               . $incategory[$i] . " ORDER BY name ASC";

应事先定义$i(通常使用循环)。