簡體   English   中英

在SQL數據庫中存儲Android復選框狀態

[英]Storing android checkbox state in SQL database

我正在創建一個應用程序,該應用程序將允許用戶使用其姓名,年齡等進行注冊。我將所有這些信息存儲在如下所示的User類中。

public class User {

String name, username, password, phoneNumber;
int age;

//constructor
public User(String _name, String _username, String _password, String _phoneNumber, int _age){
    name = _name;
    username = _username;
    password = _password;
    phoneNumber = _phoneNumber;
    age = _age;
}
}

我將數據發送到PHP腳本以存儲在SQL數據庫中。 該代碼如下:

protected Void doInBackground(Void... params) {
            ArrayList<NameValuePair> dataToSend = new ArrayList<>();
            dataToSend.add(new BasicNameValuePair("name", user.name));
            dataToSend.add(new BasicNameValuePair("age", user.age + ""));
            dataToSend.add(new BasicNameValuePair("username", user.username));
            dataToSend.add(new BasicNameValuePair("password", user.password));
            dataToSend.add(new BasicNameValuePair("phoneNumber", user.phoneNumber));

        HttpParams httpRequestParams = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
        HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);

        HttpClient client = new DefaultHttpClient(httpRequestParams);
        HttpPost post = new HttpPost(SERVER_ADDRESS + "Register.php");

        try{
            post.setEntity(new UrlEncodedFormEntity(dataToSend));
            client.execute(post);
        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }

現在,我想創建大約10個可以存儲其狀態(選中與未選中)的復選框。 我知道我可以在User類中創建一堆布爾值,但這似乎很麻煩且不明智。 因此,我的問題是,如何最好地將CheckBox數據存儲在SQL數據庫中?

供參考,PHP腳本如下:

<?php
$con = mysqli_connect("localhost", "root", "", "is_clients");

$name = $_POST["name"];
$age = $_POST["age"];
$username = $_POST["username"];
$password = $_POST["password"];
$phoneNumber = $_POST["phoneNumber"];

$statement = mysqli_prepare($con, "INSERT INTO user (name, age, username, password, phoneNumber) VALUES (?, ?, ?, ?, ?) "); 
mysqli_stmt_bind_param($statement, "sisss", $name, $age, $username, $password, $phoneNumber);
mysqli_stmt_execute($statement);

mysqli_stmt_close($statement);

mysqli_close($con);

?>

您可以將數組傳遞給PHP,該數組中的每個元素都可以是一個復選框值。 在PHP中,您可以通過使用帶有方括號的變量(例如checkBoxesArr [])來執行此操作,以便可以使用相同的變量,並且每次出現都將是數組中的另一個元素。

因此,在Java中(checkBoxXXXValue可以為二進制或布爾值):

dataToSend.add(new BasicNameValuePair("checkBoxArr[]", checkBoxOneValue));
dataToSend.add(new BasicNameValuePair("checkBoxArr[]", checkBoxTwoValue));
dataToSend.add(new BasicNameValuePair("checkBoxArr[]", checkBoxThreeValue));

PHP:

$checkBoxArr = $_POST['checkBoxArr'];
print_r($checkBoxArr);

那是你想要的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM