2011-05-04 122 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