将 MySql 表数据选择到数组中
Posted
技术标签:
【中文标题】将 MySql 表数据选择到数组中【英文标题】:Selecting MySql table data into an array 【发布时间】:2011-06-11 09:19:10 【问题描述】:我尝试从 mysql 中捕获数据以将它们全部放入数组中。 假设:
users table
-----------------------
id| name | code
----------------------
1| gorge | 2132
2| flix | ksd02
3| jasmen | skaod2
$sql = mysql_query("select id, name, code from users");
$userinfo = array()
while($row_user = mysql_fetch_array($sql))
$userinfo = $row_user[name]
-------------------------
foreach($userinfo as $usinfo)
echo $usinfo."<br/>";
这是我只能插入用户名但不能在 userinfo 数组中插入代码和 ID 的问题,请帮我将所有数据插入同一个数组中。
[P.S] 请不要面向对象。
【问题讨论】:
更新了我的答案,这有帮助吗? 【参考方案1】:$sql = mysql_query("select id, name, code from users");
$userinfo = array();
while ($row_user = mysql_fetch_assoc($sql))
$userinfo[] = $row_user;
这将为您提供$userinfo
作为具有以下结构的数组:
[
[id => 1, name => 'gorge', code => '2123'],
[id => 2, name => 'flix', code => 'ksd02'],
[id => 3, name => 'jasmen', code => 'skaod2']
]
如果要输出数据:
foreach ($userinfo as $user)
echo "Id: $user[id]<br />"
. "Name: $user[name]<br />"
. "Code: $user[code]<br /><br />";
【讨论】:
我确定您输入的速度非常快,但是您使用了 mysql_query 两次。那是行不通的。 @user553786,据我了解,这回答了您的问题。请进一步解释您要做什么。 我问一下当while循环是ex中的工作重点时如何在数组中插入id、名称、代码 user.. 这行将按照您的要求执行:$userinfo[] = $row_user;你试过了吗? $row_user 将包含 ID、名称和代码。它将被重新分配给下一个数组,而不是变量 $row_user(如 $userinfo[] 所示)。这就是为什么两个答案都有相同的解决方案。 好吧,我试着像你说的那样 $userinfo[] = $row_user;你试过了吗?是的,我试着给我那个 ^^ 致命错误:不能使用 [] 阅读【参考方案2】:while($row_user = mysql_fetch_assoc($sql))
$userinfo[] = $row_user;
foreach($userinfo as $usrinfo)
echo "Id: ".$usrinfo['id']."<br />";
echo "Name: ".$usrinfo['name']."<br />";
echo "Code: ".$usrinfo['code']."<br />";
【讨论】:
无需创建新数组。使用 mysql_fetch_assoc 或将 MYSQL_ASSOC 传递给 mysql_fetch_array 以获取您正在构建的数组。并且字符串(您的数组索引)属于单引号。您的代码将在每个循环中抛出 3 个 E_NOTICE 通知。 为什么你更新你的第一个答案我认为第一种方法比第二种方法更好,但两种解决方案都可以【参考方案3】: while($row_user = mysql_fetch_array($sql))
$row_id = $row_user ["id"];
$row_author = $row_user ["author"];
$row_code = $row_user ["code"];
$userinfo[] = array("id"=> $row_id , "author"=> $row_author, "code"=> $row_code);
foreach ($userinfo as $user)
echo "Id: $user[id]\n"
. "Name: $user[name]\n"
. "Code: $user[code]\n\n";
【讨论】:
恭喜,你绕着月亮飞到了街角商店。【参考方案4】:我找到了这段代码,我节省了时间:
<?php
$sql=mysql_query("select * from table1");
/*every time it fetches the row, adds it to array...*/
while($r[]=mysql_fetch_array($sql));
echo "<pre>";
// Prints $r as array
print_r ($r);
echo "</pre>";
?>
【讨论】:
以上是关于将 MySql 表数据选择到数组中的主要内容,如果未能解决你的问题,请参考以下文章