2015-06-25 20 views
0

獲得的陣列的一個式柱中的一個值I有以下代碼:選取PDO

$foo = $bdd->prepare($qry); 
$foo->execute(); 
$result = $foo->fetchAll(); 

$qry,我有一個表等status s之間beatles bJOIN一個SELECT(在列status_id),這樣的結果是以下情況:

代碼:

b.id b.firstname b.lastname b.status_id s.status_id  s.status 

0  John   Lennon  0    0    Mort 
1  Paul   McCartney  1    1    Vivant 
2  Ringo   Starr   1    1    Vivant 
3  George   Harrison  0    0    Mort 

(第一行是列表中的列名,它不在查詢結果內)

例如,我想在php中選擇只有ringo starr的s.status。我怎樣才能做到這一點 ?

感謝

+1

選擇在PHP中獲得林戈·斯塔爾的條目?爲什麼不用'WHERE'子句修改查詢? – Daan

+0

不要吝嗇,顯示您的實際查詢,其相關 – RiggsFolly

+0

我沒有任何實際的查詢,因爲我正在尋找的是一種方法來選擇輸出數組的任何一個特定值,保持輸出數組,因爲它是因爲我可能需要選擇其他值)。 @ d0ug7a5完美地回答了我的問題。謝謝大家:) –

回答

2

如果你想獲取的用於林戈斯塔爾狀態的值,但需要在該網頁中的其他字段的值,然後(假設數組已經回來了按id索引),你可以用$result[2]['status']訪問。否則,請將您的選擇語句更改爲僅選擇idstatus的值。請注意,在您的SELECT語句中,您需要爲b.status_ids.status_id提供別名;當你加入時,列名會被採用,並且表名基本上被忽略了 - 所以像b.status_id AS b_status_id, s.status_id AS s_status_id這樣的東西可以確保你得到了正確的值。你當然可以這麼做 - 從你給的列名判斷,你看起來好像你沒有。

0
  1. 位置添加與滿足您的需求
  2. ALTER領域子句留下子句條件只有一個,你需要
  3. 使用fetchColumn()代替fetchAll()
  4. 你設置。
+0

你是絕對正確的,但是基於提問者的演示能力,你的回答實際上並不是非常有用。 – RiggsFolly

2

我不確定您是否想從現有結果中選擇一列,或發出一個只會獲得您想要的結果的查詢。但是,一個更好的定義查詢聲音最明智的

SELECT 
    [ your joins etc ] 

WHERE b.firstname = 'Ringo' 
    AND b.lastname = 'Starr' 

或者,如果你想只從現有的結果

foreach ($resultats as $result) { 
    if ($result['firstname'] == 'Ringo' && $result['lastname'] == 'Starr') { 
     echo 'Got him'; 
    } 
}