0

私はこのコードを持っています。これは、すべてのテーブルフィールドを取得し、それらにチェックボタンを関連付けるのに役立ちますが、このコードは同じ名前を生成しています。つまり、すべてのフィールドが表示されますが、同じ名前が付けられています... id

彼らの特定の名前が必要です。

何が悪いのか分かりますか?

ありがとう..

        <form action='report.php' method='post'>

<?php // Script 12.7 - sopping.php

$db = mysql_connect('localhost', 'root', '');
mysql_select_db('db_up', $db);

echo "<table border='1' class='tabtext'>";

$result = mysql_query("SELECT * FROM hostess");
$numrows = mysql_num_rows($result);
$numfields = mysql_num_fields($result);

// show headers
echo '<thead><tr>';
for ($field = 0; $field < $numfields; $field++) {
    $field_name = mysql_field_name($result, $field); // instead of $i
    echo '<th><label><input type="checkbox" name="checkbox[' . $field_name . ']" value="1"/> ' . $field_name . '</label></th>';
}

echo '</tr></thead>';

echo '<tbody>';
for ($row = 0; $row < $numrows; $row++) {
    $data = mysql_fetch_assoc($result);
    echo '<tr>';
    for ($field = 0; $field < $numfields; $field++) {
        $field_name = mysql_field_name($result, $field);
        if (isset($_POST['checkbox'][$field_name])) {
            echo '<td>' . $data[$field_name] . '</td>';
        }
    }
    echo '</tr>';
}
echo '</tbody>';
echo '</table>';


?>
<input type='submit' value='Submit' />
</form>
4

2 に答える 2

1

mysql_field_name関数の2番目の引数は定義されていないため、PHPは0を意味すると想定し、最初のフィールド名のみを返していると確信しています。定義した変数($ field)をインデックスとして使用します。

する必要があります:

for ($field = 0; $field < $numfields; $field++) {
    $field_name = mysql_field_name($result, $field); // instead of $i
    echo '<th><label><input type="checkbox" name="checkbox[' . $field_name . ']" value="1"/> ' . $field_name . '</label></th>';
}
于 2012-06-18T13:41:23.173 に答える
1

mysql_field_nameを使用していて、$i定義されていないため、常に同じ名前が返されます(列0の場合) 。

于 2012-06-18T13:41:31.720 に答える