2016-11-14 6 views
-1

私はユーザーアカウントシステムで作業しており、SQLデータベースのレコードを更新する必要があります。私はそれを探してみましたが、私が見つけたすべての解決策はうまくいかないようです。私のテーブルには、この特定のユーザーのSQL更新

userId userName userCoins 
    30  Bob  0 

ようになり、私はそれがこの

userId userName userCoins 
30  jim  0 

のように見えるように、ユーザ名を更新したいと思っています - あなたはあなたのクエリを書くことができます

<?php 
    ob_start(); 
    session_start(); 
    include_once 'dbconnect.php'; 

    $res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 
    if (isset($_POST['btn-signup'])) { 
     //This is where I am trying to update 

     UPDATE users SET userName = 'jim' WHERE userCoins=0; 
    } 
?> 
<!DOCTYPE html> 
<html> 
    <?php header("Access-Control-Allow-Origin: http://www.py69.esy.es"); ?> 
    <head></head> 
    <body> 
     <center> 
     <h3>Welcome, <?php echo $userRow['userName']; ?>. You Currently Have <span id="services"><?php echo $userRow['userCoins']; ?></span> Service Coins</h3> 
      <div class="form-group"> 
       <div class="input-group"> 
        <span class="input-group-addon"><span class="glyphicons glyphicons-lock"></span></span> 
        <input type="text" id="emp_id" name="sender" class="form-control" placeholder="Enter Your Wallet Key" value="<?php echo $row['userCoins']; ?>" maxlength="15" /> 
        <span class="text-danger"><?php echo $error; ?></span> 
       </div> 
      </div> 
      <div class="form-group"> 
       <button type="submit" class="btn btn-block btn-primary" name="btn-signup">Sign Up</button> 
      </div> 
     </center> 
    </body> 
</html> 
<?php ob_end_flush(); ?> 
+0

なぜあなたは 'userCoins = 0 'に基づいて更新していますか?これは、ゼロ(ない)コインを持つすべてのユーザーの名前を更新します。それは本当にあなたがしたいことですか? –

+0

これを実行すると正確に何が起こっていますか? –

+0

さて、私は例として使用しました。私はログインしている現在のユーザーを使用し、その特定の値を変更します。 –

答えて

3

あなたが行ったようにSELECTのために(同様に)、それを引用符で囲んで機能して使用します。

if (isset($_POST['btn-signup'])) { 
     //This is where I am trying to update 

     mysql_query("UPDATE users SET userName = 'jim' WHERE userCoins=0"); 
    } 

ます。また、古いAPIを使用して、SQLインジェクションに開放されています。

準備文を使用してください。

参考文献:

とコメントで述べたように:

Why are you updating based on userCoins = 0? This will update EVERY user's name that has zero (no) coins. Is that really what you want to do? – Charles Bretana

だから、あなたは追加の句を追加する必要があります。

また、$_SESSION['user']アレイに実際に値が含まれていることを確認する必要があります。そうしないと、クエリは失敗します。

エラーをチェック:(クエリの)

+0

これをデータベースはまだ更新されません。mysql_query( "UPDATE users SET userName = 'jim' WHERE userId = 30 ') –

+0

@MorganClarke @MorganClarke私は何をすべきかを示すリンクを使って自分の答えを編集しました。あなたのクエリは非常にうまくいっていないかもしれません。 –

+0

$ resは、ページの他の場所のテーブルのデータを使用しているので、私は事実を知っています –

0

として:

UPDATE users SET userName = 'jim' WHERE userId=30; 
+2

彼らはすでにそれを持っています。彼らはやっているべきことをしていないし、あなたはそれを逃した。ここでは、あなた自身のために参照してください '((_ _ POST ['btn-signup']))){ //これは私が更新しようとしているところです UPDATEユーザーSET userName = 'jim' WHERE userCoins = 0; } ' –

+0

私はこれを使用するとエラーが発生します:構文解析エラー:構文エラー、予期せぬ「ユーザー」(T_STRING)の更新行 –

+0

そのコード行を表示できますか? –