将 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 表数据选择到数组中的主要内容,如果未能解决你的问题,请参考以下文章

如何把oracle中表的数据导入mysql

kettle 的mysql数据库中表输入中如何编辑sql语句

将mysql某个数据库中表的行数从大到小排序

c#如何查询数据库中表的一列数据并赋值给一个数组

将数据库中的选择值直接表达到数组中

使用Navicat for mysql导出数据库中某一个表的结构为xls格式