Php 将字符串保存到数组中
我有一个查询,在我的借阅表中查找借阅最多的前10本书,但是我想将这10个值存储到一个数组中,这样我就可以再次使用该数组。这是我到目前为止的代码。。。提前谢谢你的帮助Php 将字符串保存到数组中,php,mysql,arrays,Php,Mysql,Arrays,我有一个查询,在我的借阅表中查找借阅最多的前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
//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>";
}
//选择要使用的数据库
$selected=mysql\u select\u db(“ds2”,$dbhandle)
或死亡(“无法选择示例”);
//执行SQL查询并返回记录
$result=mysql\u query(“从book中选择book.title、book.book\u id、count(book.book\u id)作为count\u book\u id、loan.book\u id
book.book\u id=loan.book\u id上的内部联接loan
按书本分组。书本id ASC
按计数订购(帐簿编号)说明);
$titles=array();
while($row=mysql\u fetch\u数组($result))
{
echo$row['title'];
回声“
”;
}
回声“
”;
对于($index=1;$index而不是echo$row['title']
,您可以使用下面的代码将它们存储到数组中
$titles[] = $row['title'];
以后使用数组概念访问它们
$titles[0]; // 1st item
$titles[1]; //2nd item
甚至可以使用foreach循环遍历所有项
foreach($titles[] as $title)
echo $title;
下面将允许您获取逗号分隔的字符串(如果需要,仅供参考)
试试看
while($row=mysql\u fetch\u array($result))
{
echo$row['title'];
$arr[]=$row['title'];//存储在数组中
回声“
”;
}
回声“
”;
//因为您只需要10个值,否则就不需要这个for循环。
对于($index=1;$index您应该在循环中填充数组,而不是在单独的循环中填充数组之后:
$count = 0;
while($row = mysql_fetch_array($result))
{
echo $row['title'];
echo "<br>";
if ($count < 10)
{
array_push($titles, $row);
}
$count++;
}
$count=0;
while($row=mysql\u fetch\u数组($result))
{
echo$row['title'];
回声“
”;
如果($count<10)
{
数组推送($titles,$row);
}
$count++;
}
$titles[]=$row['title'];
仅供参考,代码错误地假设将有10行需要迭代。请考虑SQL和foreach循环的限制。@ficuscr是的,我这样做的唯一原因是因为我不确定如何将其保存到数组中,在这种情况下,现在我只需要回显一次:)@user1930227注意,您需要推送$row
,我之前复制了您的代码(错误…)。
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>";
$count = 0;
while($row = mysql_fetch_array($result))
{
echo $row['title'];
echo "<br>";
if ($count < 10)
{
array_push($titles, $row);
}
$count++;
}