我有一个用于复选框的表,其值为1或0.
我在使用implode打印所选行的列名称时遇到问题,其中字段值等于1(不包括任何等于0的行)并用逗号分隔。
我尝试了几种方法,但没有使用mysql_num_fields我还没能用数组打印字段名称(mysql_fetch_array)
以下是我目前正在使用的内容。任何帮助深表感谢。是的,我将转向mysqli。
$query_columns = mysql_query("SELECT field1, field2, fields3 FROM table1 WHERE user_id = '" . $id . "'");
$numberfields = mysql_num_fields($query_columns);
for ($i=0; $i<$numberfields ; $i++ ) {
$var = mysql_field_name($query_columns, $i);
$row_title .= $var;
}
echo $row_title;
答案 0 :(得分:1)
echo不会打印null或false值,你可以看到这个简单的例子;
echo '--------------<br>';
echo false;
echo null;
echo '<br>--------------';
另外,如果您只想打印字段名称,即不是它们的值? (我还没能打印字段名称)
为什么不这样做(假设你至少有一个结果):
$row = mysql_fetch_assoc($query_columns);
echo implode(', ', array_keys($row));
如果您不想使用0值名称,只需使用过滤器删除它们,然后打印:
$row = mysql_fetch_assoc($query_columns);
echo implode(', ', array_keys( array_filter( $row )));
如果你想从$ row数据中得到一个漂亮的打印,只需这样做:
echo "<pre>";
print_r($row); // or var_export($row)
echo "</pre>";
答案 1 :(得分:0)
不确定我是否做对了你想要的。 但试试这个:
$row = mysql_fetch_row($query_columns);
然后你可以创建if for for循环
for ($i=0; $i<$numberfields ; $i++ ) {
if($row[$i] == 1) {
$var = mysql_field_name($query_columns, $i);
$row_title .= $var;
}
}
答案 2 :(得分:0)
Hope I have understood your question correctly.
$query_columns = mysql_query("SELECT field1, field2, fields3 FROM table1 WHERE user_id = '" . $id . "'");
$rows = mysql_fetch_assoc($query_columns);
$result = '';
$i=0;
$count = count($rows);
foreach($rows as $key => $value) {
if($value === 1) {
$result .= '$key';
}
if($i!=0 && $i<$count-1)
$result .= ', ';
$i++;
}
echo $result;