2012-01-27 69 views
-1

我遇到的问题是当我回显或打印下列变量时,我收到的数据只是我表格中列出的最后一项业务的数据。查询为什么只返回一组数据?

目前无论上市我单击我得到的最后一次业务返回相同的一组数据。

正如您在下面的代码中所看到的,我将通过点击列表中的business_name传递给我的查询以查找相关业务配置文件信息。

$business_name = mysql_real_escape_string($_GET['business_name']); 

$query = "SELECT 
business_id, 
category, 
years_recommended, 
profile_size, 
business_name, 
established, 
employees, 
service, 
strengths, 
ideal_for, 
reassurance 

FROM 
business_data 

WHERE 
business_name = '$business_name' 

AND 
profile_size = 'A' 

OR 
profile_size = 'B' 

OR 
profile_size = 'C' 

OR 
profile_size = 'D' 

OR 
profile_size = 'E'"; 

$result = mysql_query($query, $dbc) 
or die (mysql_error($dbc)); 

while($row = mysql_fetch_array($result)) { 

$business_id = $row["business_id"]; 
$profile_size = $row["profile_size"]; 
$category = $row["category"]; 
$years = $row["years_recommended"]; 
$established = $row["established"]; 
$employees = $row["employees"]; 
$service = $row["service"]; 
$strengths = $row["strengths"]; 
$ideal_for = $row["ideal_for"]; 
$reassurance = $row["reassurance"]; 
} 

echo... 

如果您需要更多信息,请让我知道。

我的代码有什么问题吗?

非常感谢提前。

+0

降票有点苛刻。它不像我已经付出了努力。 – 2012-01-27 15:51:43

回答

7

您的echo调用位于获取循环之外,因此即使其他人已返回,您也只能看到最后一个结果。

while($row = mysql_fetch_array($result)) { 

    $business_id = $row["business_id"]; 
    $profile_size = $row["profile_size"]; 
    $category = $row["category"]; 
    $years = $row["years_recommended"]; 
    $established = $row["established"]; 
    $employees = $row["employees"]; 
    $service = $row["service"]; 
    $strengths = $row["strengths"]; 
    $ideal_for = $row["ideal_for"]; 
    $reassurance = $row["reassurance"]; 

    // Echo **inside** the loop 
    echo... 
} 

如果你愿意,你可以根据需要存储在一个大阵,然后可以在脚本中任何后续使用所有的结果,多次:

// Array for all results 
$results = array(); 
while($row = mysql_fetch_array($result)) { 
    // Append each row fetched onto the big array 
    $results[] = $row; 
} 
// Now use it as needed: 
foreach ($results as $r) { 
    echo $r['profile_size']; 
    print_r($r); 
} 
+0

谢谢你的回应。有什么理由为什么我得到一个语法错误在科莫多编辑例如。当我在回声后移动花括号时出现红色下划线。 – 2012-01-27 15:49:23

+0

@RichardBell如果你的'echo'调用没有任何东西,而且它只是'echo..',那是一个语法错误。如果你使用真正的语句'echo $ row ['profile_size'];'应该没有错误。 – 2012-01-27 15:51:20

+0

好的。实现了echo $ row ['profile_size'];'变量包含所有的配置文件大小,而不仅仅是目标配置文件。我想我需要进一步考虑这一点。应该只有一个结果'business_name'匹配'profile_size'。感谢您的输入。 – 2012-01-27 16:06:40

1

您的回音应在循环内