我有一个包含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"];
}
}
这里我只得到了第一行,我怎么能用我的关联变量获得另外两行?提前致谢
答案 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++;
}
}