2017-07-26 171 views
0

我认为我可能会尝试几乎没有睡眠的事情,但我在创建MySQL查询数组时遇到问题。我有一个查询,像这样:从MySQL创建PHP数组

$result = mysqli_query($con,"SELECT * FROM vehicles ORDER BY id"); 
while($row = mysqli_fetch_array($result)) { 
    $description = $row['description']; 
    $description = strtoupper($description); 
    $id = $row['id']; 
} 

我想它来创建这样一个数组:

$v[1] = "Myarray1"; 

我都试过,但它不工作:

$v[ $row['id']] = $row; 

我是否必须这样查询:

while($row = mysql_fetch_assoc($result)){} 

if if我知道,我是如何根据需要创建阵列的?

非常感谢提前

+0

您的代码记录的数据失败,*彻底*。你需要检查错误,它会告诉你*完全*出了什么问题。 –

回答

1

在这里你没有创建一个数组。在你的循环中,你只是简单地修改你发布的上下文中的一些变量,我无法推理。

如果你需要的,这无论如何没有数据过滤就可以了:在PHP

$list = Array(); 
while($row = mysqli_fetch_array($result)) { 
    $list[] = $row; 
} 

[]基本上“追加”,这是一个丑陋的机制,但它的工作原理。

如果要访问每个主键列(id你的情况,我认为),那么只需用[$row["id"]]

+0

我想再看看他们的代码和使用的api。 –

+0

@ Fred-ii-你的意思是mysql(i)部分?我不鼓励通常使用这两种API,但这不是他的问题。 –

+0

*“我不鼓励使用这两个API通常”* - 有点......但是,这里的事情是'mysql_' api不能与其他任何东西混合。 *“但这不是他的问题”* - 不,但这是问题的一部分。 –

-1

更换[]我不能完全肯定导致你正在寻找结束。但是,如果您想以$ row ['column']的形式访问结果,其中'column'是MySQL数据库中的列名,那么您需要使用mysql_fetch_assoc。我觉得这个例子可以帮助:

while (($row = mysqli_fetch_assoc($result))) { 
    $v[$row['id']] = $row; 
} 

$ V [1] [ '说明']是列描述了一个id = 1个

+0

这是行不通的,我希望你能意识到这一点,并看过他们的查询API。 –

+0

加上循环中添加的'()'的使用应该被删除。 –

+0

当然,它的工作原理。它也被提及作为其他答案的一部分。额外的括号用于确认您想要在if语句中进行分配。如果(a = 3)会产生警告。如果((a = 3))不会。 – swmcdonnell