如何使用数字将mysql转换为数组结果

时间:2016-09-28 05:50:50

标签: php mysql arrays loops while-loop

我有像这样的PHP代码

$sql = mysql_query("SELECT userName FROM `rcpa_users` WHERE upline_users = '$selectuname'");
while($tjans = mysql_fetch_array($sql)){    

print_r($tjans);

}

但是输出显示了这个

Array ( [userName] => mita ) 
Array ( [userName] => wendyang ) 
Array ( [userName] => viviekosasih )

现在,如何像这个结果一样转换数组

Array
(
    [0] => mita
    [1] => wendyang
    [2] => viviekosasih
)

所以我可以使用echo $ tjans [0],$ tjans [1],$ tjans [2]

进行调用

谢谢..

5 个答案:

答案 0 :(得分:1)

mysql_fetch_assoc() - 获取结果行作为关联数组。此函数将返回一行作为关联数组,其中列名称将是存储相应值的键。

描述:返回与获取的行对应的关联数组,并将内部数据指针向前移动。 mysql_fetch_assoc()相当于使用MYSQL_ASSOC调用mysql_fetch_array()作为可选的第二个参数。它只返回一个关联数组。

之后,您需要执行array_values(),以便使用数字键将所有值转换为数组。

array_values - 返回数组的所有值

array_values()返回数组中的所有值,并以数字方式对数组进行索引。

  

如果您的查询返回多行作为输出,您可以更喜欢这种方法:

$sqlxx = mysql_query("SELECT userName FROM rcpa_users WHERE upline_users = '$selectuname'"); 
$final_tjans = array();
while($tjans = mysql_fetch_assoc($sqlxx))
{
    $final_tjans[] = $tjans['userName'];
}
print_r($final_tjans);
  

如果您的代码只返回单行作为输出:

$sqlxx = mysql_query("SELECT userName FROM rcpa_users WHERE upline_users = '$selectuname'"); 
$tjans = mysql_fetch_assoc($sqlxx));
$final_tjans = array_values($tjans); 
print_r($final_tjans);

示例:

<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

<强>输出:

Array
(
    [0] => XL
    [1] => gold
)
  

注意:在PHP 5.5.0中不推荐使用mysql扩展名,并且已在PHP 7.0.0中将其删除。相反,应该使用MySQLi或PDO_MySQL扩展。

答案 1 :(得分:1)

当你有多个记录时,那么使用array_values简单获取数组将不起作用,因为它只会返回一行。 要从此查询中获取所有行,您需要获取每一行。 如下所示

if (mysql_num_rows($result) > 0) {
    $tjan = array();
    while($row = mysql_fetch_assoc($result)  ) {
        $tjan[] = $row['price'];
    }
    print_r($tjan);
}

然后在循环前必须为空的数组中添加“price”字段。 最后你会得到一个你想要的数组。 干杯,

答案 2 :(得分:0)

您根本不需要运行循环。将结果存储在数组中:

$tjans = mysql_fetch_assoc($sql);
$tjans = array_values($tjans);

答案 3 :(得分:0)

首先你应该使用mysqli而不是mysql,因为它被折旧,并且不需要使用任何类型的循环,因为你的Select查询将获取与你的where条件匹配的所有记录。以下是您可能使用的代码段。

$sql = mysql_query("SELECT userName FROM `rcpa_users` WHERE upline_users = '$selectuname'");
$tjans = mysqli_fetch_assoc($sql);
print_r(array_values($tjans));

答案 4 :(得分:0)

您所要做的就是创建一个数组并将 userName 存储到其中,并在while循环外打印数组以查看输出。

$new_array = array();
$sql = mysqli_query($conn, "SELECT userName FROM `rcpa_users` WHERE upline_users = '$selectuname'");
while($tjans = mysqli_fetch_object($sql)){
    $new_array[] = $tjans->userName;
}

print_r($new_array);

我的代码更改了什么?

  1. 将所有mysql_*移至mysqli_*
  2. userName和store。
  3. 的进一步商店创建一个数组
  4. 在循环外打印新数组。
  5. 最后一个是使用$conn变量。这是连接字符串,您必须了解这一点。 click here
  6.   

    注意: original MySQL extension现已弃用,   连接到a时会产生 E_DEPRECATED 错误   数据库。相反,使用   MySQLi或   PDO_MySQL个扩展程序。