我可以';t显示我表中的所有内容,它只显示最后一条记录


I can't display everything from my table, it only displays the last record

嘿,伙计们,我很难用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

您需要使用串联或数组,因为$results将在每个循环中重置,并最终获得最后一个结果:

阵列:

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

或者:

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

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

试试这个

 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;

您必须将每一行附加到一个变量中,目前,您正在重写该值,只留下最后一个值。试试这个:

//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;

注意.=,这是字符串与变量串联的简写。

它总是分配新的变量try this one

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

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

尝试使用$results作为类似于array

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

每次都要将值附加到一个变量中。因此,它将为结果保留mysql_fetch_array数组中的最后一个元素。但你需要将它们分配给一个数组,然后它会以数组$result的形式维护这些数组元素的分配。如果你打印$results,那么你会得到取消服务器的输出。

您还可以将结果附加到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