HTML — как обновить массив из поля ввода в PHP MySQL

Это мой код:

$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», используя массив. Теперь я хочу обновить поле после редактирования. Это для исправления результата.

1

Решение

Это должно дать вашему текстовому полю имя, тогда вы можете выполнить отдельные запросы 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);
}
}

}

Попробуй это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]