0

Hey Guys 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'];
 }

出力:

1001MWF 7:00~8:00

期待される出力:

1001MWF 7:00~8:00、1002MWF 8:00~9:00
4

5 に答える 5

7

$results各ループでリセットされ、最終的に最後の結果が得られるため、連結または配列のいずれかを使用する必要があります。

配列:

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

または:

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

注: mysql_* 関数は廃止されました。mysqli と PDO に切り替えて、パラメーター化されたクエリを使用して SQL インジェクション攻撃を防ぐことができます。

于 2013-09-04T05:32:30.520 に答える
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;
于 2013-09-04T05:45:56.233 に答える
0

いいねし$resultsてみるarray

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

毎回変数に値を追加しているため、結果の配列の最後の要素が保持されますmysql_fetch_array。ただし、それらを配列に割り当てる必要がある場合は、それらの配列要素の割り当てを配列の形式で維持します$result.を印刷する$resultsと、deserver の出力が得られます。

次のように、結果の $results変数に結果を追加することもできますconcating

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

また、プレフィックス で名前が付けられたすべての関数を提供する拡張機能全体が現時点で公式に非推奨であり、将来的に削除されるためmysql_*、ステートメントを避けるようにしてください。ext/mysql PHPmysql_*PHP v5.5.0

より適切に使用できる他の 2 つのMySQL拡張機能があります:MySQLiPDO_MySQLで、どちらも の代わりに使用できますext/mysql

于 2013-09-04T05:33:11.697 に答える
0

常に新しい変数を割り当てますこれを試してください

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

うまくいかない場合はお知らせください。

于 2013-09-04T05:32:42.113 に答える
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;

.=これは、文字列を変数に連結することの省略形であることに注意してください。

于 2013-09-04T05:32:53.490 に答える