我无法显示表格中的所有内容,只显示最后一条记录

时间:2013-09-04 05:29:20

标签: php mysql

嘿伙计我很难从mysql中的表中打印所有内容。 它只打印表的最后一条记录。提前谢谢。

这是我的语法:

//query
$search_query="SELECT offer_no,day,time from offer where subject_id = '"              .$search_subject_id ."';";  

//execution of query    
$result = mysql_query($search_query,$dbhandle); 

//fetching result
while ($row = mysql_fetch_array($result)) {
      $results =$row['offer_no'] . "     " .$row['day']. "     " .$row['time'];
 }

输出

1001 MWF 7:00-8:00

预期输出:

1001 MWF 7:00-8:00, 1002 MWF 8:00-9:00

5 个答案:

答案 0 :(得分:7)

您需要使用连接或数组,因为$results将在每个循环上重置,最后得到最后的结果:

阵列:

  $results[] =$row['offer_no'] . "     " .$row['day']. "     " .$row['time'];

或者:

  $results .=$row['offer_no'] . "     " .$row['day']. "     " .$row['time'];

请注意:不推荐使用mysql_ *函数,可以切换到mysqli和PDO并使用参数化查询来防止SQL注入攻击。

答案 1 :(得分:1)

试试这个

 while ($row = mysql_fetch_array($result)) {
    $results[] =$row['offer_no'] . "     " .$row['day']. "     " .$row['time'];
  }

 $result_string = "";
 if(is_array($results))
 {
    $result_string = implode(",",$results) 
 }
 echo $result_string;

答案 2 :(得分:0)

它始终指定新变量试试这个

$results =$results.",".$row['offer_no'] . "     " .$row['day']. "     " .$row['time'];

如果不起作用,请告诉我。

答案 3 :(得分:0)

您必须将每一行追加到变量,目前,您要覆盖该值,只留下最后一行。试试这个:

//query
$search_query="SELECT offer_no,day,time from offer where subject_id = '"              .$search_subject_id ."';";  

//execution of query    
$result = mysql_query($search_query,$dbhandle); 

$output = "";

//fetching result
while ($row = mysql_fetch_array($result)) {
      $output .= $row['offer_no'] . "     " .$row['day']. "     " .$row['time'];
}

echo $output;

注意.=这是将字符串连接到变量的简写。

答案 4 :(得分:0)

尝试使用$results作为array

while ($row = mysql_fetch_array($result)) {
    $results[] = $row['offer_no'] . "     " .$row['day']. "     " .$row['time'];
}

每次都将值附加到变量。因此,它将保存结果的mysql_fetch_array数组中的最后一个元素。但是,您需要将它们分配给数组,然后它将保留这些值的赋值数组$result形式的数组元素。如果打印$results,则会得到deserver输出。

您还可以将结果附加到concating上的$ results 变量结果,如

while ($row = mysql_fetch_array($result)) {
    $results .= $row['offer_no'] . "     " .$row['day']. "     " .$row['time'];
}
echo $results;

并且由于整个mysql_*扩展程序(提供带有前缀ext/mysql PHP命名的所有函数)从mysql_*开始正式弃用,并尝试避免PHP v5.5.0语句将来删除

您可以更好地使用其他两个MySQL扩展程序:MySQLiPDO_MySQL,其中任何一个都可以用来代替ext/mysql