将从数据库中检索的行存储为php中的单独变量

时间:2017-04-13 14:03:59

标签: php mysql sql

我有一个显示所需行的循环,但我也希望每行都存储在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中的第二行中。  我怎么能这样做?

4 个答案:

答案 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