-1

値が 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;
4

3 に答える 3

1

echo は null または false の値を出力しません。この単純な例を見ることができます。

    echo '--------------<br>';
    echo false; 

    echo null;
    echo '<br>--------------';

また、値ではなく、フィールド名のみを出力したい場合は?(フィールド名を出力できませんでした)
なぜこれをやらないのですか(少なくとも1つの結果があると仮定して):

$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>";
于 2014-07-10T15:12:16.143 に答える
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;
于 2014-07-10T15:24:13.953 に答える