2015-12-15 4 views
0

Я хотел бы обновить данные цикла при подаче пользователем.Php update mysql loop data

Вот таблица, называется "Т1":

+-------+------------+----------------+-----------------+-----------+ 
| id | areacode | type   | price   | time  | 
+-------+------------+----------------+-----------------+-----------+ 
| 1  | 1   | 1    | 100000   | 12345678 | 
| 2  | 1   | 1    | 100000   | 12345678 | 
| 3  | 1   | 1    | 100000   | 12345678 | 
| 4  | 1   | 1    | 100000   | 44444444 | 
+-------------------------------------------------------------------+ 

id является Auto_Increase в T1.

I цикл моих данные, как это:

$query = DB::query("SELECT * FROM ".DB::table('land')." WHERE areacode = '$areaid'"); 
while($row = DB::fetch($query)) { 
    $i = $i+1; 
    $areacode = $row['areacode ']; 
    $time = date("Y-m-d H:i",($row['time'])); 
    $type = $row['type']; 
    $price = $row['price']; 
    $rowid = $row['id']; 
    if ($type == 1){ 
     $valuetype = '<label><input name="radio['.$i.']" type="radio" id="radio" value="1" checked="checked" /> 
    normaltype</label> 
    <label><input type="radio" name="radio['.$i.']" id="radio" value="2" />hightype</label>'; 
    }else{ 
     $valuetype = '<label><input type="radio" name="radio['.$i.']" id="radio" value="1" />normaltype</label> 
    <label><input name="radio['.$i.']" type="radio" id="radio" value="2" checked="checked" />hightype</label>'; 
    } 
    $sqlsearch .= '<tr><td>'.$rowid.'</td> 
    <td>'.$areaname.'</td> 
    <td>'.$valuetype.'</td> 
    <td>'.$price.'</td> 
    <td>'.$rowbuytimes.'</td> 
    </tr>'; 
    } 
    include template('admincp_area'); 
    if($_GET['mod'] =='updatearealand'){ 
     //how to update the mysql when user submit the loop data 
    } 

Мое кодирование шаблон:

<form method="post" autocomplete="off" name="paynameform" action="plugin.php?id=admincp&do=area&areaid=1&mod=updatearealand" enctype="multipart/form-data" ><table width="100%" border="1" cellspacing="0" cellpadding="5">$sqlsearch</table><input name="" type="button" /></form> 

Я зацикливание вышеуказанных данных, но я не знаю, как обновить данные зацикливания когда пользователь отправит форму. Часть данных, которую пользователь может редактировать, - это radio.

Пожалуйста, помогите мне рассмотреть этот вопрос, спасибо.

ответ

2

У вас уже есть , поэтому результатом является массив. Это хорошо, поэтому вы можете их разделить. Для того, чтобы сопоставить их с записями базы данных вы можете изменить это использовать идентификатор строки вместо $i:

<label><input name="radio['.$rowid.']" type="radio" value="1" />normaltype</label> 

Теперь, после отправки формы, вы получите массив, который вы можете перебрать, как это:

foreach ($_POST['radio'] as $rowid => $value) { 
    DB::query("UPDATE ".DB::table('land')." SET type=$value WHERE id='$rowid'"); 
} 

Я не знаю, какую структуру базы данных вы используете, поэтому ее следует адаптировать для предотвращения инъекций SQL.

+0

спасибо, он решает мою проблему !! –