为什么查询只返回一组数据


Why is the query returning only one set of data?

我遇到的问题是,当我回显或打印以下变量时,我收到的数据只是表中列出的最后一个业务的数据。

目前,无论我点击哪个列表,我都会得到相同的最后一组业务返回数据。

正如您在下面的代码中看到的,我正在传递单击列表中的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...

如果你需要更多信息,请告诉我。

我的代码有什么问题吗?

非常感谢。

您的echo调用在fetch循环之外,因此即使返回了其他结果,您也只能看到最后一个结果。

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);
}

您的回波应该在循环内