-2

嘿伙计们(和女孩们)我遇到了数组问题,下面的代码看起来像是在复制数组中的每一列!:/

<?php
//quantidade_de_registro
include("mysqlconfig.inc");
$query = "SELECT * FROM contas ";
$res = mysql_query($query);
while($row = mysql_fetch_array($res)){
$arr[] = $row;
}
echo json_encode($arr);
mysql_close($con);
?>

它将返回如下内容:

[{"0":"5","ID":"5","1":"Zenny","Login":"Zenny","2":"Zeny","Nome":"Zeny","3":"daniel_queiroz789@hotmail.com","Email":"daniel_queiroz789@hotmail.com","4":"23021994","Senha":"23021994"}]

每列出现两次,但我需要每列只出现一次,我的一个朋友说我需要重新解析数组并将其放入数组中,我不知道这是什么意思或我该怎么做:/

请帮忙 :)

4

4 回答 4

1

您可以通过向 fetch 添加第二个参数来修改脚本

mysql_fetch_array($res,MYSQL_ASSOC)

但是,我会建议您应该使用 PDO 或 mysqli

于 2013-09-20T20:00:23.133 回答
0

采用mysql_fetch_assoc

不,不要那样做。而是使用PDOormysqli和它们各自的 fetch 方法。

mysql_fetch_array同时获取数值和关联数组。

于 2013-09-20T19:58:49.237 回答
0

mysql_fetch_array() 作为第二个参数,默认为“MYSQL_BOTH”,这意味着它返回一个包含数字键和关联键的数组。

要只有其中一个,您可以在调用中指定它

mysql_fetch_array($res, MYSQL_ASSOC); // for assosiative
// OR
mysql_fetch_array($resm MYSQL_NUM); // for numeric

有关更多信息,您可以查看 PHP 文档: http: //php.net/manual/en/function.mysql-fetch-array.php

于 2013-09-20T20:12:25.403 回答
0

尝试使用PDOPDOStatement类获取方法允许您设置返回数据的格式。

下面是一些用于在关联数组中检索数据的代码:

try {
    $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $sth = $dbh->prepare("SELECT * FROM contas");
    if($sth->execute()) {
        $contacts = $sth->fetchAll(PDO::FETCH_ASSOC);
        echo json_encode($contacts);
    } else {
          throw new PDOException(print_r($sth->errorInfo(), true));
    }

} catch(PDOException $e) {
    echo $e->getMessage();
}
于 2013-09-20T20:18:01.213 回答