2017-02-22 103 views
1

我試圖檢查我的EditText的文本是否已經在數據庫中。我真的很新PHP & MySQL檢查用戶名是否存在於Android代碼

我試圖接收所有的用戶名,並檢查它是否等於EditText Text。起初它看起來不錯。我檢查了它與

if(!UsernameDB.equals(editUsername.getText().toString()){ 
    Toast.makeText(Register.this, "Not taken", Toast.LENGTH_SHORT).show(); 
} 

問題是,它爲每個名稱敬酒。所以我不能問是否一切都填寫正確(電子郵件,密碼等),因爲它說它不匹配後,它通過匹配的名稱。

有人知道我能如何解決我的問題嗎?

+1

你確定字符串UsernameDB是你期望的嗎?在進行比較之前,可以幫助將UsernameDB註銷到adb以查看實際值。 – dungtatas

+2

目前還不清楚UsernameDB是什麼,發佈一些關於它的信息 – Caner

回答

0

我不確定是否需要通過Ajax來完成,或者可以刷新網站。 這裏是令人耳目一新的例子:所有的 首先你需要一個公式推(HTML):

<?php include("loginFunktion.php"); ?> 
<form action="" method="Post">  
     <input name="name"> 
     <input type="submit" name="test" value="test">    
</form> 

那是你的DB類(新工作表)的基本:

<?php 
class DB { 
protected $mysqli; 

function __construct(){ 
    $this->host = "***"; 
    $this->username = "***"; 
    $this->database = "***"; 
    $this->password = "***"; 

} 

function connect(){ 
    $this->mysqli = new mysqli($this->host, $this->username, $this->password, $this->database); 

    if (mysqli_connect_errno()) { 
     printf("Connect failed: %s<br/>", mysqli_connect_error()); 
     exit(); 
    } 
} 

function disconnect() { 
    // Verbindung beenden 
    $this->mysqli->close(); 
} 
}  
?> 

現在你有包括類和你的類的構造函數連接到您的數據庫(下面的代碼是loginFunktion.php片):

<?php 
    include("dbclassname.php"); 
    $_DB = new DBData(); 
    $_DB -> connect(); 
?> 

現在你有一個康恩撓度你的DB和u可以做querys:

if(isset($_POST["test"])){ 
$queryCALL ="SELECT user FROM t_user WHERE user_name=".$_REQUEST["name"]; 
$result = $this->mysqli->query($queryCALL); 
$ergebnis=$result->fetch_array()[0]; 
if(count($ergebnis)>0) 
    echo "this name is used"; 
} 

如果您對PHP的阿賈克斯新是複雜的,你一點點。儘管如此,這是一個很好的指導: https://www.w3schools.com/php/php_ajax_database.asp

下一次,請添加更多信息。