如果添加了新查询,如何获取


How to fetch if a new query has been added

while($fetchres = mysql_fetch_array($searchquery)) { 
        $v1 = $fetchres['v1']; $v2 = $fetchres['v2']; $v3 = $fetchres['v3']; 
        $v4 = $fetchres['v4']; $v5 = $fetchres['v5'];
        $v6 = $fetchres['v6']; 
        $v7 = $fetchres['v7'];
        }

你好!如何自动设置这些列?我的意思是我的系统会自动添加一列。例如,我的系统添加了一个新的列'v8'。但在我的代码中,我只输入到v7。如何根据系统自动生成的列数来自动编码查询的获取?谢谢。

使用extract

while ($row = mysql_fetch_assoc($searchQuery))
{
  // Extract the keys of the array into the local symbol table.
  extract($row);
  // Now, all variables exist and you can echo them like this:
  echo $v1;
  echo $v8;
}

您仍然需要知道变量的名称。如果你只想回显里面的所有内容,使用foreach和一个键赋值:

while ($row = mysql_fetch_assoc($searchQuery))
{
  foreach($row as $key => $value) 
  {
    echo "$key: $value'n"; // Will output something like 'v1: foo' and 'v2: bar', separated by newlines.
  }
}

如果您真的想这样做,您可以使用extract($fetchres)

更多信息

的例子:

$fetchres = array('v1'=>'foo', 'v2'=>'bar');
extract($fetchres);
echo '$v1 is ' . $v1 . 'and $v2 is ' . $v2;

您可以使用可变变量,尽管我认为这是一个非常糟糕的主意。

我想你实际上想要这个:

while ($fetchres = mysql_fetch_array($searchquery)) {
    foreach ($fetchres as $key => $value) {
        echo $key . ': ' . $value . PHP_EOL;
    }
}