更新数据库表的最快方法

时间:2010-01-01 19:23:08

标签: php mysql

我有一个网站,人们可以创建一个包含两列word_1word_2的未知长度的表,并将此表存储在数据库中。通过迭代行将这些值插入数据库当然非常简单。

现在有人决定更新一些值,然后他进入编辑页面,在那里找到<input/>中的所有行 - 表中的字段。在编辑内容,添加另一行或删除行时更新这些值的最快方法是什么?

例如,这是创建后的表:

     [word_1        ]  [word_2       ]

1.   [foo           ]  [bar          ]
2.   [something     ]  [more         ]
3.   [another       ]  [row          ]
...
600. [another_value ]  [blabla       ]
601. [last          ]  [row          ]

然后有人决定编辑它:

1.   [foo           ]  [bar          ]
2.   [changed_val   ]  [more         ]
...
234. [another_change]  [changed_value]
...
600. deleted
601. [last          ]  [row          ]
602. [new_row       ]  [new_value    ]

我认为我的HTML代码如下所示:

<table>
    <tr>
        <td>
            <input type="hidden" name="row[0][id]" value="id-2" />
            <input type="text" name="row[0][word_1]" value="value_1" />
        </td>
        <td>
            <input type="text" name="row[0][word_2]" value="value_2" />
        </td>
        <td>
            <img src="img.gif" onclick="delete_row()" />
        </td>
    </tr>
     <tr>
        <td>
            <input type="hidden" name="row[1][id]" value="id-5" />
            <input type="text" name="row[1][word_1]" value="value_1" />
        </td>
        <td>
            <input type="text" name="row[1][word_2]" value="value_2" />
        </td>
        <td>
            <img src="img.gif" onclick="delete_row()" />
        </td>
    </tr>
</table>

是否有更好的方法来更新表而不是通过每个行来检查是否编辑了当前行?查看行是否被删除的最佳方法是什么?

我知道这些数据很容易存储在XML中,但我更喜欢数据库,因此我可以将来自其他表和用户等的数据链接在一起。

2 个答案:

答案 0 :(得分:2)

假设表格很大,可能最快的方法是用一个查询将整个内容拉入内存,循环比较行,并根据需要进行更新。

最好是做一些动态的事情,当使用AJAX调用编辑行时,查询会立即发送到数据库。

答案 1 :(得分:1)

你可以使用delete_row()和那个单词的id,每次运行delete_row时它会将数据保存在js变量中,当用户点击更新按钮时,你知道要更新哪些行

var deletedRows = new Array();
var numberOfRowsDeleted = 0;
function delete_row(row_id)
{
    deletedRows[numberOfRowsDeleted] = row_id;
    numberOfRowsDeleted++;
}
相关问题