从MySQL查询中获取行数组?

时间:2015-05-22 15:23:34

标签: php mysql multidimensional-array row multiple-columns

我有这段代码......

$results_query = "SELECT * FROM profile WHERE string LIKE '%" . $search_deliminator . "%'";
$results_result = $database->query($results_query);
$result = mysql_fetch_array($results_result);

我要做的是拉出 string 列包含搜索deliminator的所有行。此外,我想从行的每一列获取值。

我如何拉出包含每一行的多维数组,以及每一行中每列的每个值?

修改

我正在寻求做这件事......

while ($row = mysql_fetch_assoc($results_result)) {

    $result[] = $row;

}

然后像这样回复每一列...

foreach ($result as $row) {
    echo $row["0"];
}

3 个答案:

答案 0 :(得分:5)

要获得结果集的展平数组,请尝试以下方法:

$result = array();

while ($row = mysql_fetch_assoc($results_result)) {
    $result[$row['id']] = $row;
}

echo json_encode($result);

此外,您应该查看MySQLiPDO来替换(现已弃用的)MySQL扩展。

答案 1 :(得分:2)

如果您使用PDO,则可以使用fetchAll()方法:

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

使用mysql或mysqli,您使用循环:

$rows = array();
while ($row = $stmt->fetch_assoc()) {
    $rows[] = $row;
}

答案 2 :(得分:1)

试试这个

$i=0;
while ($row = mysql_fetch_assoc($results_result)) {

 $result[$i]["column1"] = $row["column1"];
 $result[$i]["column2"] = $row["column2"];
 $i++;
}

显示输出用途:

foreach ($result as $row) {
 echo $row["column1"];
 echo $row["column2"];
}