如何从 MYSQL 数据库中检索数据并通过单击按钮在 Android 中进行验证

普拉纳米

我有一个 Android 应用程序,用于为每个用户插入用户记录。每个用户每天只能将数据输入数据库 2 次。如果用户第三次尝试输入数据(点击提交按钮),一个新的活动(在 Android 中)将显示一条消息,日期字段(TextView)应该增加 1 天。我可以添加每次点击日期字段增加 1 天。所以我尝试的是获取每个用户在特定日期的 MYSQL 数据库中的数据计数,如果计数大于 3,那么 PHP 脚本将返回一个 echo 语句,根据该语句,Anroid 中的异步任务将功能并显示新的活动。

我的PHP脚本是:

   <?php
require "conn.php";
require "SalesLogin.php";

$enquiry = $_POST["enquiry"];
$retail = $_POST["retail"];
$collection = $_POST["collection"];
$booking = $_POST["booking"];
$evaluation = $_POST["evaluation"];
$test_drive = $_POST["test_drive"];
$home_visit = $_POST["home_visit"];
$user_name = $_POST["user_name"];
$update_date = $_POST["date"];
$absent = $_POST["absent"];


$timezone = new DateTimeZone("Asia/Kolkata" );
$date = new DateTime();
$date->setTimezone($timezone );
$time =  $date->format( 'H:i:s A' );


$sql = "UPDATE employee_details SET
enquiry_sum = (SELECT SUM(enquiry) +'$enquiry' FROM (SELECT * FROM employee_details WHERE date = CURDATE() AND name = '$user_name') AS x)
WHERE date = CURDATE() AND name = '$user_name'";
$res = $conn->query($sql);

$check = "UPDATE employee_details SET enquiry_target_status = ( SELECT IF (MAX(enquiry_sum) = 52, 'ACHIEVED', 'NOT ACHIEVED') FROM (SELECT * from employee_details WHERE date = CURDATE() AND name = '$user_name') AS Y ) WHERE date = CURDATE() AND name = '$user_name'";
$insert_status = $conn->query($check);


$miss_count = "UPDATE employee_details SET enquiry_target_missed_by = (SELECT (50 - MAX(enquiry_sum)) FROM (SELECT * from employee_details WHERE date = CURDATE() AND name = '$user_name') AS Z ) WHERE date = CURDATE() AND name = '$user_name'";
$insert_status = $conn->query($miss_count);


$mysql_qry1 = "INSERT INTO employee_details(enquiry,retail, 
collection,booking, evaluation, test_drive, home_visit, name, date,time,absent) values ('$enquiry','$retail','$collection','$booking','$evaluation','$test_drive',
'$home_visit','$user_name','$update_date','$time','$absent');";

if($conn->query($mysql_qry1) === TRUE) 
    echo "Your details has been successfully inserted.";

else 
    echo "Error: " .$mysql_qry1. "<br>" . $conn->error;


if($update_date != $date){
$mysql_qry2 = "UPDATE employee_data SET last_updated_date = (DATE_ADD('$update_date', INTERVAL 1 DAY)) WHERE name = '$user_name';";
$conn->query($mysql_qry2);
echo "Date changed," .$mysql_qry2;
} 


$mysql_qry3 = "SELECT COUNT(*) from employee_details WHERE date = '$update_date' and name LIKE '$user_name';";
$conn->query($mysql_qry3);
      if($mysl_qry3 <= 2) 
              {
                   echo "You can login.";
              } 
         else 
              {
                  echo "You cannot login anymore for today.";
             }


$conn->close();
?>

我的 AsyncTask 代码是:

@Override
    protected void onPostExecute(String result) {
        try {
            if (result.contains("Welcome") && result.contains("Date")) {
                String[] str = result.split("_");
                String name = str[1];

                String[] date = result.split(":");
                String upd_date = date[1];
                Intent intent = new Intent(context,InsertDataActivity.class);
                intent.putExtra("username",name);
                intent.putExtra("date",upd_date);
                context.startActivity(intent);
            }
            else if (result.contains("Login failed.") && !(result.contains("Undefined")))

                Toast.makeText(context,"Invalid Crendentials.",Toast.LENGTH_LONG).show();

            else if (result.contains("You cannot login anymore for today.")) {
                Log.i("Check",result);
                Intent intent = new Intent(context,ThankYouActivity.class);
                context.startActivity(intent);

            }

        } catch (NullPointerException e) {

            Toast.makeText(context,"No Internet Connectivity found.Please connect to the internet first and then retry.",Toast.LENGTH_LONG).show();
        }
        }

但是我的代码不能正常工作。任何人都可以帮我解决这个问题吗?

普拉纳米

我使用下面的 PHP 脚本解决了这个问题。我没有为使用“AS”完成的 SQL 输出使用别名。下面的脚本工作正常并给出了所需的结果。

<?php
require "conn.php";
require "SalesLogin.php";

$enquiry = $_POST["enquiry"];
$retail = $_POST["retail"];
$collection = $_POST["collection"];
$booking = $_POST["booking"];
$evaluation = $_POST["evaluation"];
$test_drive = $_POST["test_drive"];
$home_visit = $_POST["home_visit"];
$user_name = $_POST["user_name"];
$update_date = $_POST["date"];
$absent = $_POST["absent"];


$timezone = new DateTimeZone("Asia/Kolkata" );
$date = new DateTime();
$date->setTimezone($timezone );
$time =  $date->format( 'H:i:s A' );


$sql = "UPDATE employee_details SET
enquiry_sum = (SELECT SUM(enquiry) +'$enquiry' FROM (SELECT * FROM employee_details WHERE date = CURDATE() AND name = '$user_name') AS x)
WHERE date = CURDATE() AND name = '$user_name'";
$res = $conn->query($sql);

$check = "UPDATE employee_details SET enquiry_target_status = ( SELECT IF (MAX(enquiry_sum) = 52, 'ACHIEVED', 'NOT ACHIEVED') FROM (SELECT * from employee_details WHERE date = CURDATE() AND name = '$user_name') AS Y ) WHERE date = CURDATE() AND name = '$user_name'";
$insert_status = $conn->query($check);


$miss_count = "UPDATE employee_details SET enquiry_target_missed_by = (SELECT (50 - MAX(enquiry_sum)) FROM (SELECT * from employee_details WHERE date = CURDATE() AND name = '$user_name') AS Z ) WHERE date = CURDATE() AND name = '$user_name'";
$insert_status = $conn->query($miss_count);


$mysql_qry1 = "INSERT INTO employee_details(enquiry,retail, 
collection,booking, evaluation, test_drive, home_visit, name, date,time,absent) values ('$enquiry','$retail','$collection','$booking','$evaluation','$test_drive',
'$home_visit','$user_name','$update_date','$time','$absent');";

if($conn->query($mysql_qry1) === TRUE) 
    echo "Your details has been successfully inserted.";

else 
    echo "Error: " .$mysql_qry1. "<br>" . $conn->error;


if($update_date != $date){
$mysql_qry2 = "UPDATE employee_data SET last_updated_date = (DATE_ADD('$update_date', INTERVAL 1 DAY)) WHERE name = '$user_name';";
$conn->query($mysql_qry2);
echo "Date changed," .$mysql_qry2;
} 


$mysql_qry3 = "SELECT COUNT(*) AS count from employee_details WHERE date = '$update_date' and name LIKE '$user_name';";
$result1 = mysqli_query($conn,$mysql_qry3);

                       $row = mysqli_fetch_assoc($result1);
                       $count = $row['count'];

                       echo "Count: " .$count; 
      if($count <= 2) 
              {
                   echo "You can login.";
              } 
         else 
              {
                  echo "You cannot login anymore for today.";
             }


$conn->close();
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Android应用中进行验证

Android如何对我从数据库检索的数据进行排序

如何在5.2中进行验证?

如何验证mysql数据库URI

如何通过使用php文件从mysql数据库中检索问题和答案

每次单击按钮后如何从mysql数据库中逐行获取价值?

如何使用mysql+php在从数据库生成的列表中进行搜索

如何在使用 mysql 数据库时在 react js 中进行编辑

如何转义mysql数据库名称以防止在cakephp3中进行sql注入?

如何在MySQL数据库中对行进行排序

如何验证通过mysql查询通过手动哈希插入数据库的php中的密码?

如何使用Android在数据库Firebase的多个子节点中进行更改

如何在从SQLite数据库填充的列表视图android中进行搜索

如何在android中对sqlite数据库进行排序

如何从Android中的Firebase数据库检索特定节点

直接从Android中的mysql数据库更改按钮状态

如何通过AD FS在React中进行身份验证?

如何通过单击按钮更新mysql数据?

我想通过使用表显示MySQL数据库来检索数据,以与图像中显示的相同的方式进行排列

如何使用 MySQL 数据库中的数据在 Android Studio 中创建图形?

如何在angular 2中进行身份验证

如何使用IAM DB身份验证和Python在MySQL RDS中进行身份验证

如何构造MySQL数据库以存储多个复选框表单数据,然后在php中进行统计?

如何从Java的MySQL cPannel数据库中为Android应用读取或写入数据

如何通过JSP和Servlet将android应用程序与mysql数据库通信

通过mysql进行JSON Android登录验证

如何在android studio 3.0中连接firebase并通过按钮将数据存储在实时数据库中

如何从数据库检索数据并能够在summernote编辑器中进行编辑?

如何通过查询获取MySQL中的数据库结构