2

昨日、別のユーザーが MySQL クエリを処理するための汎用関数の作成を手伝ってくれました。次のようになります。

function fetchAll($query) {
  $res = mysql_query($query) or trigger_error("db: ".mysql_error()." in ".$query);
  $a   = array();
  if ($res) {
    while($row = mysql_fetch_assoc($res)) { 
        $a[]=$row;
    }
  }
  return $a;
}

返された結果を出力するには、次のようにします。

$data = fetchAll("SELECT * FROM news_table ORDER BY id LIMIT 10");

foreach ($data as $row) {
    echo $row['title'];
}

私の質問は、配列に結果が 1 つしかない場合の結果の出力に関するものです。ページの現在のブログ投稿を表示するときのように。最初に foreach ループを呼び出さずにできるかどうか知りたいですか? ループする必要がないため、配列から最初の結果だけを出力する方法はありますか。

上記の fetchAll() とは対照的に、おそらく代替関数を使用できますか? 1行だけ出力するもの?

乾杯、

スコット

4

3 に答える 3

2

配列を数えるだけ

 if(count($data) == 1) {
     // Only one dataset
 } else if(count($data) > 0) {
     // foreach
 } else {
     // no content
 }
于 2012-05-08T06:45:10.783 に答える
2

はい。例えば:

echo $data[0]['title'];

基本的に $data は 2 次元配列で、最初の次元が行番号 (カウントは 0 から始まります) であるため、その番号がわかっている場合は任意の行に直接アクセスできます。行が 1 つしかない場合は、必ず 0 になります。

于 2012-05-08T06:46:31.673 に答える