PHP/SQL初学者

PHP/SQL初学者,php,sql,Php,Sql,我已经设置了一个具有属性work1、work2、…、work11的表。我想把它们都加入一个数组,然后过滤掉任何双条目。代码中的错误在哪里?我猜在这行$row[${'work'.$I}]

我已经设置了一个具有属性work1、work2、…、work11的表。我想把它们都加入一个数组,然后过滤掉任何双条目。代码中的错误在哪里?我猜在这行
$row[${'work'.$I}]
$work_list = array();
for ($i=1; $i <= 11 ; $i++) {
    $query_work = mysql_query("SELECT DISTINCT ${'work'.$i} FROM Test;"); 
    while ($row = mysql_fetch_array($query_work)) {
        $work_list[]= $row[${'work'.$i}];
    }
}

$work_list=array_merge(array_unique($work_list));
$work\u list=array();

对于($i=1;$i要将由常量字符串和数值变量组成的值放入较大的字符串中,只需将常量部分直接放入外部字符串中,然后引用变量:

$query_work = mysql_query("SELECT DISTINCT work$i FROM Test;");
或者,您可以使用字符串连接:

$query_work = mysql_query("SELECT DISTINCT work" . $i . " FROM Test;");
由于
$row
数组接受字符串键,因此您可以类似地访问感兴趣的列:使用

$work_list[] = $row["work$i"];
或使用

$work_list[] = $row["work" . $i];
但是,从数据库中同时获取所有工作项可能更有意义:

$work_list = array();
$work_names = array();
for ($i=1; $i <= 11 ; $i++) {
    $work_names[] = "work$i";
}
$work_name_string = implode(', ', $work_names);
$query_work = mysql_query("SELECT DISTINCT $work_name_string FROM Test;"); 
while ($row = mysql_fetch_array($query_work)) {
    for ($i=1; $i <= 11 ; $i++) {
        $work_list[]= $row["work$i"];
    }
}

$work_list=array_merge(array_unique($work_list));
$work\u list=array();
$work_names=array();
对于($i=1;$i)