现在,我知道这是不好的做法,但这就是我想要做的。
这就是我现在所拥有的:
$max_str = "MAX(CASE WHEN p_list.p_name";
$case_str = "THEN (CASE WHEN check_box = '2' THEN '2' WHEN check_box = '1' THEN '1' WHEN check_box = '0' THEN '0' WHEN checkbox = '1' THEN '1' WHEN checkbox = '0' THEN '0' END) ELSE '-' END)";
@$result = MYSQL_QUERY("SELECT ID, Description, checkbox,
$max_str = '$row[0]' $case_str '$row[0]',
$max_str = '$row[1]' $case_str '$row[1]',
$max_str = '$row[2]' $case_str '$row[2]',
$max_str = '$row[3]' $case_str '$row[3]'
FROM p_list
JOIN $databasetable
ON $databasetable.P_ID = p_list.P_ID
LEFT JOIN udata_store
ON $databasetable.C_ID = udata_store.C_ID
WHERE p_list.J_ID = $jid and $databasetable.J_ID = $jid
GROUP BY ID");
$row[$id]
包含从不同表中提取的行值,它们可以一直更改。基本上$id
可以从0
转到n
。
我现在的查询工作正常,但我必须把
$max_str = '$row[0+n]' $case_str '$row[0+n]',
很多次(其中n是我放了多少行。)以免耗尽行。
我想知道如何在查询中包含这样的循环:
@$result = MYSQL_QUERY("SELECT ID, Description, checkbox,
$i=0;
while($i<$num_of_rows_from_table){
echo "$max_str = '$row[$i]' $case_str '$row[$i]',"
$i++;
}
...
虽然我不知道如何处理循环中的最后一个,
。
有什么想法吗?
答案 0 :(得分:1)
通过删除最后一个逗号来尝试此操作。
$str = '';
$i=0;
while($i<$num_of_rows_from_table){
$str .= "$max_str = '$row[$i]' $case_str '$row[$i]',";
$i++;
}
$str = substr($str, 0, -1);
echo $str;
答案 1 :(得分:1)
简单的解决方案:
$i = 0;
while($i<$num_of_rows_from_table)
{
// prepend a comma for every element after the first
if ($i > 0)
echo ", ";
echo "$max_str = '$row[$i]' $case_str '$row[$i]'";
$i++;
}