我有以下代码:
$foo = $bdd->prepare($qry);
$foo->execute();
$result = $foo->fetchAll();
在$qry
中,我在表SELECT
和JOIN
(列beatles b
)之间有一个status s
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
。我怎么能这样做?
由于
答案 0 :(得分:2)
如果要检索Ringo Starr的状态值,但需要该页面中其他字段的值,那么(假设数组已经通过id返回索引),您可以使用{{1}访问它}。否则,请将select语句更改为仅选择$result[2]['status']
和id
的值。
作为旁注,在SELECT语句中,您需要为status
和b.status_id
提供可能的别名;当你加入时,列名被采用,表名基本上被忽略了 - 所以像s.status_id
这样的东西会确保你得到这两者的正确值。你当然可以做到这一点 - 从你给出的专栏名称来看,它看起来好像你可能没有。
答案 1 :(得分:2)
我不确定您是想从现有结果中选择一列还是发出只能获得所需内容的查询。但更好定义的查询听起来最明智
SELECT
[ your joins etc ]
WHERE b.firstname = 'Ringo'
AND b.lastname = 'Starr'
或者,如果您想从现有结果中获取Ringo Starr条目
foreach ( $resultats as $result ) {
if ( $result['firstname'] == 'Ringo' && $result['lastname'] == 'Starr' ) {
echo 'Got him';
}
}
答案 2 :(得分:0)
fetchColumn()
代替fetchAll()