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