2011-11-24 66 views
-1

好吧,所以我只是很好地进行查询和输出整个结果集。我需要的只是选择结果集的单个行,以避免对单个行/单元格进行全新的查询。例如从MySQL结果集检索单个行或单元

$query = "SELECT * FROM books"; 
$query_result = mysql_query($query,$connection); 
while($book = mysql_fetch_array($query_result){ 
output... (have no problem outputting the whole result set) 
} 

我只是想知道怎样才能选择结果...或者单细胞单排不使一个全新的查询。非常感谢!

+0

你忘了' $'在'书'上? –

+0

'SELECT somefield FROM ...',然后'echo $ book ['somefield']'? –

+0

确定收听,问题不在于如何进行查询。我明白了。问题是输出结果集的单个行/单元格。原因是因为我现在有一个项目,我必须为选择列表编辑书籍列表。在页面下方,我需要结果集中的特定书名。我试图避免创建另一个查询。可能吗? – user791187

回答

2

如果你是无论如何选择所有的行但还需要对整个结果集旁边一些特定的行,可以将其保存在一个变量

while(book = mysql_fetch_array($query_result){ 
    if (some condition) { 
    $var = $row['col']; 
    } 
} 
echo $var; 
+1

+1因为我认为这是问题所在,而不是调整sql查询 – miherrma

+0

这正是我所期待的。谢谢! – user791187

0

简单的答案是'where'子句。

$查询= “ SELECT * FROM 书 WHERE books.title = 'SQL傻瓜' ”;

0

如果使用

SELECT * FROM books LIMIT 1 

你可能想添加一个ORDER BY会对返回其单列控制你得到一个单行。例如:

SELECT * FROM books ORDER BY date_published DESC LIMIT 1 

如果你不想从表中的所有列,只是所需列的列表,如更换*

SELECT author, title 
FROM books 
ORDER BY date_published DESC 
LIMIT 1 
0

如果你追求的是获取全套什么,但只能处理单行,Y你只需要跳过while -loop。

$row = mysql_fetch_array ($query_result); 
0

您可以使用此查询来获取单行:

SELECT * FROM books LIMIT 1 

或者,有结果的第一行

$query = "SELECT * FROM books"; 
$query_result = mysql_query($query,$connection); 

$book=$query_result[0]; 

// $书