首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将行单元格更新为旧值

将行单元格更新为旧值
EN

Stack Overflow用户
提问于 2013-01-02 11:26:28
回答 2查看 87关注 0票数 0

解决了问题:浏览器正在缓存GET请求。在jQuery中添加一个随机值解决了这个问题。例如:

代码语言:javascript
复制
$.get(templateDir + "/inc/quote-update.php", { FlightID: FlightID, returnorigin: valuefrom, returndestination: valueto, returnpax: valuepax, returndate: valueret, "_": $.now()},

我到处寻找解决这个问题的方法,但我找不到。如果这件事以前发过,我很抱歉。

问题是这个。当用户访问该网站时,他们会搜索航班。详细信息存储在数据库中。这个很好用。

然后,用户可以更改并添加到他们的航班。这很好--除了乘客号码。

由于某种原因,我在更新乘客数量字段时遇到了一个奇怪的错误。如果将值更改为以前为的值(以前为),则不会更新。如果您将它更改为它以前没有的值,它将成功地更新。

例如,如果用户最初搜索6名乘客的航班,然后将其更改为4名乘客--他们就不能将其更改为6名乘客。然而,他们可以将其更改为3、5或7等。

以下是我如何在phpmyadmin中设置字段:

代码语言:javascript
复制
4   pax bigint(20)      UNSIGNED    No  None

这是我的密码:

代码语言:javascript
复制
<?php

    $FlightID = isset($_GET["FlightID"]) ? $_GET['FlightID'] : null;

    $db = new PDO('mysql:host=localhost;dbname=databasename', 'database-table', 'afgafha', array(PDO::ATTR_EMULATE_PREPARES => false, 
                                                                                                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    // Start a counter for errors
    $error = 0;

    if (!is_null($FlightID)) {

            $stmt = $db->prepare("SELECT * FROM database-table WHERE FlightID = ?");
            $stmt->execute(array($FlightID));

            if ($stmt->rowCount() <= 0){ 

                        // Do Nothing //

                                        } elseif ($stmt->rowCount() == 1){      

                                                        $origin = isset($_GET['origin']) ? $_GET['origin'] : null;
                                                        $destination = isset($_GET['destination']) ? $_GET['destination'] : null;
                                                        $pax = isset($_GET['pax']) ? $_GET['pax'] : null;       
                                                        $depdate = isset($_GET['depdate']) ? $_GET['depdate'] : null;                   


                                                            if (!is_null($origin) && !is_null($destination) && !is_null($pax) && !is_null($depdate)){

                                                                    $data = array($origin, $destination, $depdate, $pax, $FlightID);  
                                                                    $stmt = $db->prepare("UPDATE database-table SET origin=?, destination=?, depdate=?, pax=? WHERE FlightID=?");
                                                                    $stmt->execute($data);

                                                                    $affected_rows = $stmt->rowCount();

                                                                    echo $affected_rows.' were affected';
                                                                    print_r ($data);

                                                            } else {
                                                                    // Validation failed
                                                                    $error++;
                                                            }

                                        } else { 
                                                $error++;           
                                        }
    } else {
            $error++;
    }
    if($error > 0) {

    }
    ?>

有人有什么想法吗?如果这真的是一个菜鸟问题,我很抱歉,但这是我自己第一次制作PHP/SQL应用程序。

提前-谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-01-02 11:36:49

wpdev_flights是如何定义的?我想这可能和你的主钥匙有关..。在运行脚本几次之后,表看起来如何?对于单个FlightID,表中是否有多行?如果有更多的一行出席,这将解释行为。如果存在与值匹配的行,则UPDATE不会执行任何操作。

票数 0
EN

Stack Overflow用户

发布于 2013-01-02 11:53:50

也许这很愚蠢,但是您的表中有paxRpax字段,并且正在更新php代码中的一个名为returnpax的字段。

编辑:

为了共享这些信息,您可以在您的cache: false调用中使用JQuery设置来避免缓存。它基本上和你使用$.now()所做的一样,但对我来说听起来更干净。不管怎样,很高兴你解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14121223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档