首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL和PHP阵列

问MySQL和PHP阵列
EN

Stack Overflow用户
提问于 2012-12-23 03:30:20
回答 2查看 7.5K关注 0票数 3

好吧,所以我天生就害怕一切,MySQL

这是我的桌子:

代码语言:javascript
复制
+----+-----------------+------+
| id | name            | age  |
+----+-----------------+------+
|  1 | Timmy Mellowman |   23 |
|  2 | Jeff Johnson    |   18 |
+----+-----------------+------+

这是我的PHP code (连接到DB之外)

代码语言:javascript
复制
$raw = mysql_query("SELECT * FROM example") or die(mysql_error()); 
$row = mysql_fetch_array($raw);
echo "\n\n";
print_r($row);

这是我的输出:

代码语言:javascript
复制
Array
(
    [0] => 1
    [id] => 1
    [1] => Timmy Mellowman
    [name] => Timmy Mellowman
    [2] => 23
    [age] => 23
)

为什么这是输出?双倍的名字?为什么同时为1和name设置名称?

在另一边是他们更好的使用MySQL的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-23 03:33:33

根据PHP文档 for mysql_fetch_array:

返回一个字符串数组,该数组对应于获取的行,如果没有更多行,则返回FALSE。返回数组的类型取决于如何定义result_type。通过使用MYSQL_BOTH (默认),您将得到一个具有关联索引和数字索引的数组。使用MYSQL_ASSOC,您只获得关联索引(因为mysql_fetch_assoc()工作),使用MYSQL_NUM,您只得到数字索引(因为mysql_fetch_row()工作)。

因此,在您的行中,$row = mysql_fetch_array($raw); $row接收一个具有关联索引和数字索引的数组,因为这是默认的。如果只需要关联索引,请使用$row = mysql_fetch_array($raw,MYSQL_ASSOC); (或mysql_fetch_assoc())或只想要数字索引,请使用$row = mysql_fetch_array($raw,MYSQL_NUM); (或mysql_fetch_row())。

若要检索所有行,请使用以下内容:

代码语言:javascript
复制
while ($row = mysql_fetch_array($raw)) {
    echo "<p>" . $row['id'] . " - " . $row['name'] . " - " . $row['age'] . "</p>\n";  
}
票数 5
EN

Stack Overflow用户

发布于 2012-12-23 03:35:36

如果未指定返回类型,则默认值为mysql_fetch_array ( $raw ,MYSQL_BOTH ),它将返回如上所述的关联索引和数字索引。

对于数字索引使用

代码语言:javascript
复制
$row = mysql_fetch_array($raw, MYSQL_NUM)

用于关联索引

代码语言:javascript
复制
$row = mysql_fetch_array($result, MYSQL_ASSOC)

若要访问所有行,请使用while循环。

代码语言:javascript
复制
while ($row = mysql_fetch_array($row, MYSQL_NUM)) {
    printf("ID: %s  Name: %s Age:%s", $row[0], $row[1],$row[2]);  
}

或者如果使用关联索引

代码语言:javascript
复制
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("ID: %s  Name: %s Age:%s", $row["id"], $row["name"],$row["age"]);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14008383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档