2012-12-03 42 views
1

好吧,我正在製作一款遊戲,並希望當用戶有大量圖像可以從中選擇圖片時。我在數據庫中有一列是user_image,它的默認值是0,如果它是0,它是一個圖像。它是0-3,每個數字都是一個單獨的圖像。像這樣..帶有單選按鈕的Mysql更新數據庫

<?php 
if ($userp['user_image'] = 0) 
{ 
    echo 
    '<img src="../achievements/Silver-Bank.png" width="60" height="60" title="Change Image"">'; 
} 
elseif ($userp['user_image'] = 1 ) 
{ 
    echo 
    '<img src="../achievements/Silver-Missions.png" width="60" height="60" title="Change Image"">'; 
} 
elseif ($userp['user_image'] = 2) 
{ 
    echo 
    '<img src="../achievements/Silver-Level.png" width="60" height="60" title="Change Image"">'; 
} 
elseif ($userp['user_image'] = 3) 
{ 
    echo 
    '<img src="../achievements/Diamond-Bank.png" width="60" height="60" title="Change Image"">'; 
} 
?> 

這就是顯示用戶圖像的地方。我爲用戶做了一個頁面,用單選按鈕選擇圖像。這裏是用PHP來更新數據庫,我似乎無法得到它的工作。

<?php 
if (isset ($_POST['new_user_image'])) 
{ 
    $sql = "UPDATE users SET user_image=(new_user_image) WHERE id='".$id."'"; 
    $res = mysql_query($sql); 
    if (mysql_affected_rows($connect) == 1) { 
     echo 'User image sucessfully changed!'; 
    } 
    else 
{ 
} 
} 
?>  

這就是它的PHP,並不是不好意思,但它不讓我張貼表和表格?

+0

我知道PHP是正確的,很確定它是。我認爲這與表格有關。我在不同的TD上有提交按鈕,我認爲它會影響它。 –

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護,[棄用過程](http://j.mp/Rj2iVR)已經開始。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

回答

0
  1. 您需要在運行mysql_query後檢查數據庫錯誤;是這樣的:不推薦

    if (mysql_errno()) { die(mysql_error()); }

  2. 使用在所有mysql_功能 - PHP手冊中甚至有一個大紅色的消息告訴你不使用它們。改用mysqli或pdo擴展名。

  3. 你的SQL語句是不是真的有效的SQL

SET user_image=(new_user_image)

這絕不表示要存儲在該列中的變量的結果。你需要做的是這樣的:如果您不確定您的SQL

$sql = sprintf('UPDATE users SET user_image=%d WHERE id=%d', $_POST['new_user_image'], $id); 

,那麼至少是打印查詢的文本與echo $sql和檢查,以確保它直接運行對數據庫。您可以更輕鬆地獲取任何SQL特定的問題。

+0

嗯,我把這個添加到查詢中.. –

+0

$ new_user_image = $ _POST ['new_user_image']; –