我有一个显示所需行的循环,但我也希望每行都存储在php中自己的变量中。我有一个具有ID和信息列的表。
显示想要的ID和信息:
if ($info = $stmnt2->fetch()) {
do {
echo "$info[id] . $info[info] </br> ";
} while ($info = $stmnt2->fetch());
} else {
echo "<p>No Info</p>";
}
我希望每一行都有自己的变量,以便我可以稍后操作数据。就像第一行将存储在名为$ one的php变量和$ second中的第二行中。 我怎么能这样做?
答案 0 :(得分:3)
我不会用变量来解决这个问题!改为使用数组:
$rows = [];
if ($info = $stmnt2->fetch()) {
do {
$rows[] = $info;
echo $info['id'].$info['info']."</br>";
} while ($info = $stmnt2->fetch());
} else {
echo "<p>No Info</p>";
}
if (!empty($rows)) {
//you can change the values of the rows like the following.
$rows[0]['id'] = 1; // The ID of the first row!
$rows[0]['info'] = 'Some Info'; // The info of the first row!
$rows[1]['id'] = 2; // The ID of the second row!
$rows[1]['info'] = 'Some Info'; // The info of the second row!
//...
}
通过上面的示例,rows
上的每个项目都是一行($rows[number_of_row - 1]
)。
提示:
$info[id]
和$info[info]
无效。您必须将这些替换为$info['id']
和$info['info']
!
答案 1 :(得分:1)
只需将$info
添加到数组:
if ($info = $stmnt->fetch()) {
$array = [];
do {
echo "$info[id] . $info[info] </br> ";
$array[] = $info;
} while ($info = $stmnt2->fetch());
} else {
echo "<p>No Info</p>";
}
// Do stuff with all rows
答案 2 :(得分:0)
$mysqli = new mysqli('localhost','root','','yourdb');
if($resultobj=$mysqli->query("select * from yourtable limit 4")){
list($one,$two,$three,$four)=$resultobj->fetch_all();
}
print_r($one);
答案 3 :(得分:0)
if ($info = $stmnt2->fetch()) {
$array=[];
do {
$array[$info['id']][]=$info; //the array index will be the same as id from the db
echo "$info[id] . $info[info] </br> ";
} while ($info = $stmnt2->fetch());
} else {
echo "<p>No Info</p>";
}
数组索引与DB中的id相同。 要检索内容,请使用
$array[1]['info'] //will retrieve content id id = 1