2011-05-04 118 views
0

我使用的是PHP嵌入式MySQL查询,如下所示:从mysql查询获得结果到一个整数数组?

$query_sample = mysql_query(" 
SELECT left FROM sampleTable WHERE right = 1 
UNION 
SELECT right FROM sampleTable WHERE left = 1 
"); 

其中两个“右”和“左”的列是整数。

执行此查询后,我想结果集被分配到一个整数数组在php中。 是否有一种将查询结果转换为整型数组的有效方法?

问题:

我基本上希望能够提出这样的问题:“是在$ results_array $ X”后,从查询结果集已被分配到$ results_array和$ x是任意整数。

任何帮助表示赞赏你们....

+0

如果'x'是'sampleTable'中的一列,那么您应该使用SQL来做到这一点。 – 2011-05-04 14:46:57

+0

请不要在问题标题中写标签。 – 2011-05-04 14:49:10

+0

@Jason $ x不是sampleTable中的一列,它只是测试$ x是否在结果集内。 – 2011-05-04 15:00:09

回答

1

您运行结果并构建数组。

如果您确实需要结果为整数,只需通过intval即可。接下来是一个快速片段。

$query_sample = mysql_query(" 
SELECT left FROM sampleTable WHERE right = 1 
UNION 
SELECT right FROM sampleTable WHERE left = 1 
"); 
$result = array(); 
while($r = mysql_fetch_array($query_sample, MYSQL_NUM)){ 
    $result[] = intval($r[0]); 
} 

var_dump($result); 

编辑:对不起。我搞砸了东西。刚纠正它。


我基本上希望能够问 问题: “在$ results_array $ X”

不要使用MySQL吧!它针对快速做这样的事情进行了优化。特别是如果您已将索引设置正确。

0

PHP是一种松散类型的语言,所以一般情况下,它不会真的无论无论是“10”或10 PHP将正确地评估它作为一个整数如果你做这样

$x = "10"; 
$y = $x * 10; // assigns 100 

..但如果你真的想看看它可以是整数,则可以使用is_int()

或者,如果要明确类型转换,你可以像

$x = intval($x); 

$x = (int) $x; 

编辑:(应答下面评论)

回复:“获得结果到一个数组“

当您执行查询时,您会得到一个结果来源返回。为了将返回的数据放入数组中,您需要遍历结果源并将其分配给数组。例如:

$result = mysql_query($querystring); 
while ($row = mysql_fetch_assoc($result)) { 
    $array[] = $row['columnname']; 
} 
+0

您是否在错误的问题上发布了这个问题? – 2011-05-04 14:49:56

+0

我更关心问题的第一部分,涉及从查询中获取结果集到数组中。有什么建议么? – 2011-05-04 14:50:07

+0

@Tomalak:不,正确的问题..他听起来像是担心结果是字符串而不是int,所以我对此作出了回应。 – 2011-05-04 14:54:31