2013-04-06 44 views
0

每次我單擊提交保存到數據庫中的數組中元素的名稱時,我正在對變化進行投票。在當前回顯元素後面顯示的元素被輸入到數據庫中,而不是我單擊的元素。有關如何使數組中的元素保存到數據庫中的任何建議?我似乎無法弄清楚。隨機數組並插入到數據庫中;在當前之前插入元素

我試過使用listsunshift仍然得到相同的結果。

可以說回聲顯示在窗體中的值爲example2。我點擊example2但example1被保存在數據庫中。我不知道如何解決這個問題。謝謝您的幫助。

這裏是我的代碼:

的陣列設置我用:

$array = array("example1","example2","example3"); 
shuffle($array); 
foreach($array as $random); 

<?php echo array_pop($random);?> 

HTML:

<tbody> 
     <tr> 
       <form action="Voting_action.php" method="post"> 
      <td> 
       <input type="submit" class="buttontable1" value="<?php echo $random ?>" name="name"/> 
      </td> 
       </form> 
      </tr> 
    </tbody> 

PHP:動作

$mysqli = new mysqli("", "", "", ""); 
if ($mysqli->connect_error) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_error . ") " . $mysqli->connect_error; 
} 
if (!$mysqli->query("INSERT INTO table(id, name, votes) VALUES (id, '".$random."', '".$votes."')")) { 
    echo "Multi-INSERT failed: (" . $mysqli->errno . ") " . $mysqli->error; 
} 

回答

0

HTML表單發送你的隨機密鑰使用名稱=「名稱」(即我這本身令人迷惑)。

通過$_POST['name']訪問變量而不是$random

這樣考慮的問題,在未來,在一審中始終做到

var_dump($_POST); 

在你的表單處理程序,以看看有什麼變量可以被使用,以及什麼樣的價值觀,他們隨身攜帶。

Ps你在你的數據庫查詢中使用未過濾和非轉義值的方式讓你對sql注入攻擊敞開大門,查看Mysqli的準備語句來回避這個問題。

+0

非常感謝我一定會在將來做所有事情抱歉,如果這是一個愚蠢的問題,我還是PHP新手。我會讓你知道它是否有效 – vince 2013-04-06 16:49:43

+0

奇妙的作品非常感謝你,我被卡住了! – vince 2013-04-06 16:57:24

+0

'if(!($ stmt = $ mysqli-> prepare(「INSERT INTO table(id,name,votes)VALUES(id,'」。$ _ POST ['name']。'','「。$ votes。 「')」))){ echo「Prepare failed:(」。$ mysqli-> error。「)」。 $ mysqli->的錯誤; } $ id = 1; if(!$ stmt-> bind_param(「isi」,$ id,$ _POST ['name'],$ votes)){ echo「綁定參數失敗:(」。$ stmt-> error。「)」 。 $ stmt->的錯誤; } if(!$ stmt-> execute()){ echo「執行失敗:(」。$ stmt-> error。「)」。 $ stmt->的錯誤; } $ stmt-> close();'這些安全嗎? – vince 2013-04-06 17:20:45