嘿伙计我很难从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
答案 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
扩展程序:MySQLi
和PDO_MySQL
,其中任何一个都可以用来代替ext/mysql
。