自动增加变量


Auto increase variable

我有一个mysql表,其中有两个列(firstname和lastname),当我运行(从名称中选择*)查询时,我想要将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 ++;
?>

要实现您想要的目标,您需要使用以下语法:

$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'];
}

这是可能的,但做起来很奇怪:

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']
  ];
}