Это мой код:
$uid=$_POST['uid'];
$fields = '';
if($uid==1){
//having some error in this line
foreach($query as $key => $value) {
if ($i++ != 0) $fields .= ', ';
$key = mysql_real_escape_string($key);
$value = mysql_real_escape_string($value);
$fields .= "$key = $value";
}
$query = mysql_query("UPDATE 2mcom SET $fields");
}echo "<table>" ;
$result = mysql_query("select * from 2mcom where roll_no='138218600004'");
$i=1;
while (false != ($data = mysql_fetch_array($result, MYSQL_ASSOC)))
foreach ($data as $key => $value)
//echo "$key: $value <br />";
{
echo "<tr><td>";
echo "$key: ";
echo "</td>";
echo '<form method="post" action="">';
echo "<td>";
echo '<input type="text" name="fld'.$i.'" value="'.$value.'"/>';
echo '<input type="hidden" name="uid" value="1"/>';
$i++;
echo "</td></tr>";
}
echo "<tr><td>";
echo'<input type="submit" name="submit" value="submit"/>';
echo "</tr></td>";
echo'</form></table>';
Я хочу обновить эту таблицу 2mcom из текстового поля ввода. Здесь я выбираю имя поля вместе с их значениями в поле ввода из таблицы «2mcom», используя массив. Теперь я хочу обновить поле после редактирования. Это для исправления результата.
Это должно дать вашему текстовому полю имя, тогда вы можете выполнить отдельные запросы UPDATE, чтобы обновить каждое поле по отдельности.
ОБНОВЛЕНИЕ, консолидированная версия предыдущего кода:
$i = 0;
while($row = mysqli_fetch_assoc($result)) {
foreach($row as $key => $value) {
$name = 'field';
$id = $row['id']; //rename this with your row id, this will give you identifiable input names
echo '<tr><td>';
echo $key . ': ';
echo '</td>';
echo '<form method="POST">';
echo '<td>';
echo '<input type="hidden" name="id[]" value="'. $row['id'] .'"/>';
echo '<input type="hidden" name="column[]" value="'. $key .'"/>';
echo '<input type="text" name="field[]" value="'. $value .'"/>';
echo '</td></tr>';
}
$i++;
}
ОБНОВЛЕНИЕ ЗАПРОСА:
function update_table($table, $col, $value, $id) {
global $link; //mysqli object
//escape values
$value = mysqli_real_escape_string($link, $value);
$col = mysqli_real_escape_string($link, $col);
//update the database field
$query = "UPDATE `$table` SET `$col` = '$value' WHERE `roll_id` = '$id'";
mysqli_query($link, $query) or die(mysqli_error($link));
return true;
}
ДИСПЕТЧЕР:
if(isset($_POST['submit'])) {
$col_count = count($_POST['column']);
$field_count = count($_POST['field']);
if($field_count == $col_count) {
} else {
trigger_error("Col - Field mismatch", E_USER_ERROR);
}
for($i=0; $i<count($_POST['column']); $i++) {
if(!update_table($table, $_POST['column'][$i], $_POST['field'][$i], $_POST['id'][$i])) {
trigger_error("Error updating field", E_USER_ERROR);
}
}
}
Попробуй это.
Других решений пока нет …