插入的最后一个ID

时间:2017-02-12 00:09:21

标签: php android mysql

我目前正在开发一款Android应用程序,可让您为理发店创建约会。

使用URL传递StringRequest,将约会信息从应用程序发送到MySQL数据库。

我被困在如何运行查询,其中只有创建的约会显示在应用程序而不是所有约会。

我想从服务器而不是sharedPref检索数据,因为理发师或理发店可以通过管理页面删除/编辑约会。

我正在从SESSION中添加$ id(添加约会活动),但这不能按计划运行。

SELECT查询在应用和网络上运行完全正常,如果' id'在查询中使用变量进行硬编码。

顺便说一下,列表预约是另一项活动。

我该如何解决这个问题?

此查询仅在通过网络而非应用程序添加约会时有效: show.php

    <?PHP

    session_start();

    date_default_timezone_set('UTC');

    include 'wp-config.php';

    global $id;

    showAppts();

    function showAppts() {

        global $wpdb;

        $id = $_SESSION['last_id'];

        $list = $wpdb->get_results( $wpdb->prepare( 
        "
        SELECT *
        FROM wpmq_appts
        WHERE id = $id
        ", $list));

        header('Content-Type: application/json');
        echo json_encode(array("wpmq_appts"=>$list));

    }
?>

add.php

    <?PHP

    session_start();

    date_default_timezone_set('UTC');

    if($_SERVER["REQUEST_METHOD"]=="POST") {
        require 'wp-config.php';
        createAppt();

    }

    function createAppt() {

        global $wpdb;
        global $last_id;

        $barberName = $_POST["barberName"];
        $userDate = $_POST["userDate"];
        $userTime = $_POST["userTime"];
        $customerName = $_POST["customerName"];

        $wpdb->insert(wpmq_appts, array(
            'barberName' => $barberName,
            'userDate' => $userDate,
            'userTime' => $userTime,
            'customerName' => $customerName
        ));

        $last_id = $wpdb->insert_id;

    }

    $_SESSION['last_id'] = $last_id;

?>

系统在应用和网络上工作的示例&#39; show.php&#39;:

    <?PHP

    date_default_timezone_set('UTC');

    include 'wp-config.php';

    global $id;

    showAppts();

    function showAppts() {

        global $wpdb;

        $id = 150;

        $list = $wpdb->get_results( $wpdb->prepare( 
        "
        SELECT *
        FROM wpmq_appts
        WHERE id = $id
        ", $list));

        header('Content-Type: application/json');
        echo json_encode(array("wpmq_appts"=>$list));


    }
?>

编辑1:添加了show.php和add.php。

$_SESSION['last_id']仅适用于网络,而不适用于应用。我猜是因为我将浏览器指向服务器上的表单然后在添加约会后转到show.php页面。我认为逻辑不正确,但我需要一些指导。任何事情都会受到赞赏。谢谢!

编辑2: 我应该保存&#39; id&#39;在sharedPred?这样,我可以在show.php中添加隐藏文本表单,传递其值为&#39; id&#39;。我认为这是最好的方法,但我几个月前才开始学习编程。

编辑3: 我也可以通过添加登录来避免这种情况,但是在我最简单的应用程序启动并运行之后,这将在不久的将来实施。

编辑4:终于搞定了show.php:

<?PHP

session_start();
global $customerName;
date_default_timezone_set('UTC');

if($_SERVER["REQUEST_METHOD"]=="GET") {
    require 'wp-config.php';
    showAppts();
}

function showAppts() {

    global $wpdb;

    $customerName = $_GET['customerName'];

    $query = $wpdb->prepare( " SELECT * FROM wpmq_appts WHERE customerName = %s", $customerName );

    $result = $wpdb->get_results($query, ARRAY_A);

    header('Content-Type: application/json');
    echo json_encode(array("wpmq_appts"=>$result));
}
?>

已保存&#39; customerName&#39;在用户创建约会时使用sharedPref,然后添加链接show.php?customerName =&#39; customerName&#39;谷歌排球

0 个答案:

没有答案