1

貸与テーブルで最も貸与された上位 10 冊の本を検索するクエリがありますが、これらの 10 の値を単一の配列に格納して、配列を再度使用できるようにしたいと考えています。ここに私がこれまでに持っているコードがあります...事前に助けてくれてありがとう!

//select a database to work with
$selected = mysql_select_db("ds2",$dbhandle)
or die("Could not select examples");

//execute the SQL query and return records
 $result = mysql_query("SELECT book.title, book.book_id, count(book.book_id) AS     count_book_id, loan.book_id  FROM book
      INNER JOIN loan ON book.book_id = loan.book_id
      GROUP BY book.book_id ASC
      ORDER BY count(book.book_id) DESC");

 $titles = array();

while($row = mysql_fetch_array($result))
{
echo $row['title'];
echo "<br>";
}

echo "<br><br>";

for($index = 1; $index <= 10; $index++)
{
array_push($titles,$result[$row]);
print_r($titles);
echo "<br>";

}
4

3 に答える 3

2

ではなく、echo $row['title']以下のコードを使用してそれらを配列に格納できます

$titles[] = $row['title'];

後でアクセスするには、配列の概念を使用します。

$titles[0]; // 1st item
$titles[1]; //2nd item

foreach ループを使用して、すべての項目をループすることもできます。

foreach($titles[] as $title)
     echo $title;

以下では、カンマ区切りの文字列を取得できます(必要な場合の参考情報です)

$comma_separated_titles = implode(",", $titles);
于 2013-01-11T17:21:51.430 に答える
0

試す、

while($row = mysql_fetch_array($result))
  {
      echo $row['title']; 
      $arr[] = $row['title'];  //Store in an array          
      echo "<br>";
  }

  echo "<br><br>";

  //Since you need only 10 values, else this for loop is not required.
  for($index = 1; $index <= 10; $index++) 
      $titles[] = $arr[$index]['title'];  

  unset($arr); //unset the original array if you don't need it anymore.
  print_r($titles); //Print top 10 values
  echo "<br>";
于 2013-01-11T17:21:57.480 に答える
0

別のループで配列を埋めた後ではなく、ループで配列を埋める必要があります。

$count = 0;
while($row = mysql_fetch_array($result))
{
  echo $row['title'];
  echo "<br>";
  if ($count < 10)
  {
    array_push($titles, $row);
  }
  $count++;
}
于 2013-01-11T17:22:48.940 に答える