1

さて、私はゲームを作っているので、ユーザーがそこにある画像から選択できる画像の量を持っていることを望んでいます。データベースにuser_imageという列があり、デフォルトは0で、0の場合は画像です。0〜3で、各番号は個別の画像です。このような..

<?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であり、初心者ではありませんが、テーブルとフォームを投稿することはできませんか?

4

1 に答える 1

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 = sprintf('UPDATE users SET user_image=%d WHERE id=%d', $_POST['new_user_image'], $id);

SQL がわからない場合は、少なくともクエリのテキストを出力echo $sqlして、データベースに対して直接実行されることを確認してください。そこでは、SQL 固有の問題をより簡単に解決できます。

于 2012-12-03T02:11:08.493 に答える