2011-06-04 123 views
2

有一个适当的方式做到这一点:从查询创建数组?

$i = 0; 

while($row = mysql_fetch_array($queryResult)){ 
    $queryArray[$i] = $row['instructionValue']; 
    $i++; 
} 

回答

3

您可以

$queryArray[] = $row['instructionValue'];

更换

$queryArray[$i] = $row['instructionValue'];

和摆脱$i变量。

当您以这种方式(使用大括号,但没有索引)为数组赋值时,您会在数组末尾自动创建一个新项目并为其分配值。

+0

工程就像一个魅力!我真的不知道它是这样工作......尴尬! – obinoob 2011-06-04 15:46:32

0
while($row = mysql_fetch_assoc($queryResult)){ 
    $queryArray[$i] = $row; 
    $i++; 
} 

更改$row['instructionValue'];只是$row你会得到所有记录的$array

在我使用mysql_fetch_assoc的同时。

注意,你可以通过做只是$queryArray[]=$row;

3

没有内置的功能与MySQL要做到这一点,但如果你移动到使用PDO抽象层(这是微不足道的,我会摆脱$i的强烈建议你这样做 - 这很棒)。

例如:

$dbh = new PDO($dsn, $user, $pass); 

$stmt = $dbh->prepare('SELECT name FROM user'); 
$stmt->execute(); 

$result = $stmt->fetchAll(); 

$result现在是包含在查询中找到的所有行的阵列。

+0

同意。一旦你掌握了PDO,与其合作非常愉快。 – damianb 2011-06-04 15:47:34

+0

这似乎相当不错,我会记住,谢谢。 – obinoob 2011-06-04 15:58:01