2016-11-20 10 views
-1

私は現在、ログイン/登録システムが動作しています。ユーザーがログインしてボタンをクリックすると、そのユーザー名がPoints.phpファイルに保存されます。次にphpはユーザ名をとり、その特定のusers pointsカラムに+5ポイントを追加します。あなたが助けてくれれば、それが非常に感謝していることを知って、感謝! これは私が現在使用しようとしているものです:android studioとphpを使用してmysqlデータベースのポイントを更新

activity_user_area.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="@dimen/activity_horizontal_margin"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/tvWelcomeMsg" 
     android:text="Username" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/etUsername" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/textView" 
     android:editable="false" /> 

    <TextView 
     android:id="@+id/tvWelcomeMsg" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Welcome" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <Button 
     android:text="Earn Points" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_alignRight="@+id/tvWelcomeMsg" 
     android:layout_alignEnd="@+id/tvWelcomeMsg" 
     android:id="@+id/bEarn"/> 

</RelativeLayout> 

UserAreaActivity.java:

import android.app.AlertDialog; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class UserAreaActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_user_area); 

     Intent intent = getIntent(); 
     final String username = intent.getStringExtra("username"); 

     final Button bEarn = (Button) findViewById(R.id.bEarn); 

     TextView tvWelcomeMsg = (TextView) findViewById(R.id.tvWelcomeMsg); 
     final EditText etUsername = (EditText) findViewById(R.id.etUsername); 

     // Display user details 
     String message = "Welcome, " + username + "!"; 
     tvWelcomeMsg.setText(message); 
     etUsername.setText(username); 

     bEarn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       final String username = etUsername.toString(); 

       Response.Listener<String> responseListener = new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         try { 
          JSONObject jsonResponse = new JSONObject(response); 
          boolean success = jsonResponse.getBoolean("success"); 
          if (success) { 
           AlertDialog.Builder builder = new AlertDialog.Builder(UserAreaActivity.this); 
           builder.setMessage("Points Added") 
             .create() 
             .show(); 
          } else { 
           AlertDialog.Builder builder = new AlertDialog.Builder(UserAreaActivity.this); 
           builder.setMessage("Points Not Added") 
             .setNegativeButton("Retry", null) 
             .create() 
             .show(); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }; 

       EarnRequest earnRequest = new EarnRequest(username, responseListener); 
       RequestQueue queue = Volley.newRequestQueue(UserAreaActivity.this); 
       queue.add(earnRequest); 
      } 
     }); 
    } 
} 

EarnRequest.java:

import com.android.volley.Response; 
import com.android.volley.toolbox.StringRequest; 

import java.util.HashMap; 
import java.util.Map; 

public class EarnRequest extends StringRequest { 
    private static final String EARN_REQUEST_URL = "https://mysite567356ht7ieyjr6u7je.000webhostapp.com/Points.php"; 
    private Map<String, String> params; 

    public EarnRequest(String username, Response.Listener<String> listener) { 
     super(Method.POST, EARN_REQUEST_URL, listener, null); 
     params = new HashMap<>(); 
     params.put("username", username); 
    } 

    @Override 
    public Map<String, String> getParams() { 
     return params; 
    } 
} 

ポイント.php:

<?php 
$con = mysqli_connect("localhost", "id177667_root", "***", "id177667_loginb"); 
$username = $_POST["username"]; 
$statement = mysqli_prepare($con, "UPDATE user SET points = points + 5 WHERE username_column =".$username); 
mysqli_stmt_bind_param($statement, "s", $username); 
mysqli_stmt_execute($statement); 
$response = array(); 
$response["success"] = true; 

echo json_encode($response); 
?> 
+0

更新クエリ文を使用中( '$ username'の代わりにプレースホルダ'? 'を使います)。そして、あなたはエラーハンドリングをしていない、あなたはすべてがうまくいくと仮定している。 – Qirel

+0

だから、あなたの言っている私のPHPはこのように見える? <?php $ con = mysqli_connect( "localhost"、 "id177667_root"、 "***"、 "id177667_loginb"); $ username = $ _POST ["username"]; $ statement = mysqli_prepare($ con、 "UPDATEユーザSETポイント=ポイント+ 5 WHERE username_column" =?); mysqli_stmt_bind_param($ステートメント、 "s"、$ username); mysqli_stmt_execute($ステートメント); ?> –

+0

mysqli_prepare($ con、 "UPDATEユーザSETポイント=ポイント+5 WHERE username_column =?"); 'このように、引用符を見てください。 – Qirel

答えて

0

まず... WHERE username_column = `べきでしょうか?`あなたの準備文であなたのPHPファイルが

Select points from user where username_column =$username 

を使用してポイントを取得し、その後

$result=$result + 5; 

UPDATE user SET points = $result WHERE username_column =$username 
関連する問題