如何获取Mysql表数据并将每行放在不同的变量中

时间:2016-06-02 14:32:16

标签: php mysql mysqli

我有一个包含4列的表[Id,Name,Title Text]。我想为每一行的每个键分配一个变量。对于

row 1 - id1, name1, title1, text1;
row 2 - id3, name2, title2, text2;
row 3 - id3, name3, title3, text3;

这里id1,name1 ...是包含该行值的变量。 在我的代码中,所有值都是每次都变为相同的变量。这是我的代码..

$id1 = NULL;
$id2 = NULL;
$id3 = NULL;

$name1 = NULL;
$name2 = NULL;
$name3 = NULL;

$title1 = NULL;
$title2 = NULL;
$title3 = NULL;

$text1 = NULL; 
$text2 = NULL;
$text3 = NULL;

$query = "SELECT * FROM index_data";
$result = mysqli_query($connect, $query);

if(mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)){
        $id1 = $row["id"];
        $name1 = $row["name"];
        $title1 = $row["title"];
        $text1 = $row["text"];
    }

}

这里我只得到了第一行,我怎么能用我的关联变量获得另外两行?提前致谢

2 个答案:

答案 0 :(得分:2)

http://php.net/manual/en/language.variables.variable.php

$i=0;
while($row = mysqli_fetch_assoc($result)){
        $i++;
        ${"id$i"} = $row["id"];
        ${"name$i"} = $row["name"];
        ${"title$i"} = $row["title"];
        ${"text$i"} = $row["text"];
    }

但你真的应该考虑使用数组。

答案 1 :(得分:1)

“我这里只有第一行”

不,你有多行,但是因为你没有对while循环中定义的数据做任何事情,所以每次都会重新定义变量,所以最终得到一个结果。

试试这个:

if(mysqli_num_rows($result) > 0) {
    $i = 0;
    $info = array();
    while($row = mysqli_fetch_assoc($result)){
        $info[$i] = [$row["id"], $row["name"], $row["title"], $row["text"]];
        $i++;
    }
}