2010-04-01 19 views
-1

,並用這種形式的MySQL:(從MP3 aktif選擇* =「0」)如何更新與輸入和複選框

<form name="form" method="post"> 
<input readonly type="text" name="id" value="<?=$haciosman['id']?>" /> 
<input type="text" name="baslik" value="<?=$haciosman['baslik']?> 
<input type="checkbox" name="secilen[]" value="<?=$haciosman['id']?>"> 
<input type="submit" name="onay" value="Onayla" /> 

我可以設置「aktif到1」爲我檢查每一行。但我想更新「baslik」!我怎樣才能更新每個「baslik」與該PHP代碼?

+3

谷歌網站:stackoverflow Sql注入。 – 2010-04-01 23:24:46

+0

omg我知道它有注射,但它只是一個本地的東西。不公開 – 2010-04-01 23:26:25

+0

Fyi非常難以閱讀非英文變量名稱。至少讓我的頭部受傷。也許這就是爲什麼沒有答案? – 2010-04-01 23:30:32

回答

1

如果我理解正確的話,你想這樣做:

mysql_query("UPDATE mp3 
      SET 
       aktif = '1', 
       baslik = '" . mysql_escape_string($_POST['baslik']) ."' 
      WHERE id = '$zuha'"); 

但是這類似於你已經在你的original question

mysql_query("update mp3 set aktif = '1', 
           baslik = '$_POST[baslik]' 
       where id = '$_POST[id]'") 

唯一的區別現在是你在一個循環中進行查詢並使用一個不同的ID變量。

我對你原來的問題的代碼的意見保持不變。 (;))

P.S .: mysql_escape_string()稍有安全性。

更新:好吧,我想我現在得到了你的問題。基本上,你想爲你的數據庫中的每個條目,像這樣創建一個輸入字段集合:

<form name="form" method="post"> 
<table> 

<?php while($haciosman = ($query)):?> 
<tr> 
    <td><input readonly type="text" name="id" value="<?=$haciosman['id']?>" /></td> 
    <td><input type="text" name="baslik[<?php echo $haciosman['id'] ?>]" value="<?=$haciosman['baslik']?> </td> 
    <td><input type="checkbox" name="secilen[]" value="<?=$haciosman['id']?>"> 

</tr> 
<?php endwhile; ?> 

</table> 
<input type="submit" name="onay" value="Onayla" /> 
</form> 

你剛纔定義的文本字段的另一個名稱爲數組baslik[$haciosman['id']],類似像你一樣的複選框,但這您需要指定數組鍵,這是記錄的ID。

然後你的PHP代碼,你可以訪問該陣列($_POST['baslik']包含數組現在)這樣的:

if (isset($_POST['onay'])) { 
    foreach ($_POST['secilen'] as $zuha) { 
    $olay = mysql_query("UPDATE mp3 
         SET 
          aktif = '1', 
          baslik = '" . mysql_escape_string($_POST['baslik'][$zuha]) ."' 
         WHERE id = '$zuha'"); 
    } 
} 

更新2:

你真的應該閱讀official short introduction to forms,遵循本文中的鏈接以及一般閱讀官方文檔以獲得關於如何使用PHP的更多見解。

+0

是的,但這不會更新每一行。它只更新一行。 3行。當我使用這個查詢baslik是複製。讓改變話語!「baslik」是「NAME」好嗎?我有3排!我想編輯3行的名字。當我點擊提交3行得到相同的名字 – 2010-04-01 23:57:47

+0

@羅尼切斯特林伍德:當然,他們這樣做,因爲你只有一個名稱輸入字段。如果要每隔三個名稱更新一次,則必須提供三個名稱輸入字段,與選擇框類似。 – 2010-04-02 00:03:56

+0

<? while($ haciosman = mysql_fetch_array($ veliaht)){ ?> 「/> <?= $ haciosman [ 'sarkisozu']?> <?= $ haciosman [ 'ekleyen']?> 」> 即時使用這個 – 2010-04-02 00:08:34