1

動的テーブルからテーブル データを編集するためのフォームが php Web サイトにあり、正しく表示されますが、データを正しく渡しているかどうか、またはデータにアクセスする方法がわかりません。

editMenu()

$query = "SELECT * FROM attendance";
$result = mysql_query($query);

print("<b>Edit the details</b><br>");

print("<form method=\"POST\" action=\"editAttendance.php\" >");
print("<table>");
print("<tr>");
for($i = 0; $i < mysql_num_fields($result); $i++) {
    $field_info = mysql_fetch_field($result, $i);
    print("<th>" . $field_info->name . "</th>");
}

while($row = mysql_fetch_row($result)) {
    print("<tr>");
    foreach($row as $_column) {
    print("<td>");
    print("<input type='text' name='{$_column}' size=15 value='{$_column}'>");
    print("</td>");            
    }
print("</tr>");
}  

print("</table>");

print("<input type='submit' value='Edit'>");
print("<input type='button' value='Cancel' onclick=\"location.href='raidAttendance.php'\">");

print("</form>");

mysql_free_result($result);

editAttendance.php は次のようになります。

<?php

@mysql_connect("localhost", "root", "vertrigo");
@mysql_select_db("test");

    $b = 0;
    $query = array();
    $result = mysql_query("SELECT * FROM attendance");

    //get all the column names, works
    for ($i = 0; $i < mysql_num_fields($result); $i++) {
        $vars[$i] = mysql_field_name($result,$b);
        $b++;
    }

    //get all the data, stuck here

?>

サイズが設定されているフォームのデータを取得する方法は知っていますが、動的なフォームを扱うのは初めてで、表も裏もわかりません。

私が取得したいのは、テーブル全体の mysql update ステートメントです。次のようなものです。

$query = ""; //all the data from the table
$result = mysql_query("UPDATE attendance SET $query");

出席テーブルは次のようになり、約 15 ~ 18 行あります。

id | name | strikes | date1 |date2 | date..

----------------------------------------------
1 | name1 | number | 21/10/2012 | 27/10/2012 | ..

2 | ..
4

1 に答える 1

1

データを投稿するときの形式は、バックエンドで $_POST['field_name'] = 'value' です。ループを実行してクエリを作成します。

$query = '';

// Generate the query string
foreach ($_POST as $field => $value) {
    $query .= $field .' = ' .$value .', ';
}

$query = substr($query, 0, -2); // Remove the last comma and space

$query .= ' where someField = someValue'; // add condition to the update statment

次に、次を実行できます。

$result = mysql_query("UPDATE attendance SET $query");

私の英語でごめんなさい。

お役に立てば幸いです。

于 2012-12-03T14:22:32.457 に答える