PHP / SQL初学者

时间:2016-03-12 00:42:10

标签: php sql

我已经设置了一个包含属性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));

非常感谢:)

1 个答案:

答案 0 :(得分:0)

要将由常量字符串和数字变量组成的值放入更大的字符串中,只需将常量部分直接放入外部字符串中,然后引用变量:

False

或者,您可以使用字符串连接:

True

由于您的$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"];