自动增加变量

Auto increase variable

我有一个 mysql table 有 2 个列(名字和姓氏),我想当我 运行 (select * from names) 查询所有firstname 的值存储到自动增量变量中,例如 name1=john name2=george 等,lastname 也是如此 姓氏 1=威廉姆斯姓氏 2=詹姆斯。我已经写了这个但是我不能让它工作

<?php
$name="";

$surname="";

$i =1;

$getinfo = "select * from names ";

$query = mysql_query($getinfo);

while ($row = mysql_fetch_array($query)) {


$name.$i. = $row['firstname'];
$surname.$i = $row['lastname'];




}

$i ++;

?>

这是可能的,但这是一件很奇怪的事情:

while ($row = mysql_fetch_array($query)) {
  ++$i;
  $nameKey='name'.$i;
  $surnameKey='name'.$i;
  $$nameKey = $row['firstname'];
  $$surnameKey = $row['lastname'];
}

为什么不直接使用数值数组呢?

while ($row = mysql_fetch_array($query)) {
  $name[]    = $row['firstname'];
  $surname[] = $row['lastname'];
}

或者,更优雅:

while ($row = mysql_fetch_array($query)) {
  $persons[] = [
    'name' => $row['firstname'],
    'surname' => $row['lastname']
  ];
}

要实现您想要的效果,您需要使用以下语法:

$i = 1;
while ($row = mysql_fetch_array($query)) {
    ${'name'.$i}    = $row['firstname'];
    ${'surname'.$i} = $row['lastname'];
    $i++;
}

但这不是一个干净的方法。我建议您使用数组,例如:

while ($row = mysql_fetch_array($query)) {
    $names[]    = $row['firstname'];
    $surnames[] = $row['lastname'];
}