【问题标题】:Is this query valid? I want to update a table, joining two different tables, and to display the data to two different forms这个查询有效吗?我想更新一个表,连接两个不同的表,并将数据显示为两种不同的形式
【发布时间】:2016-01-03 13:38:58
【问题描述】:

所以,我想做的是:我有 pageA.php 来获取用户的姓名、姓氏和问题保存到数据库(使用表单和 Jquery)。我在另一个表中显示这些问题(由“技术团队”用来回答这些问题。我想在我回答后立即在技术团队页面中显示问题,并在 pageA 中显示答案.php。我已经尝试了几件事,但还没有完全正确。

这是我不太确定的 sql 查询:

    $Ssql = "UPDATE questions SET Qstatus=1 
    WHERE answers.customerName=users.name 
    FROM users, answers 
    INNER JOIN users 
    ON answers.userID=users.userID;";

我想要做的是,在回答问题时将 Qstatus 更改为 1。 0 = 未回答,1 = 已回答。第一页询问详情。

这是我使用 ATM 将数据插入数据库并在问题得到解答时更新的代码。

        if ($_POST) 
{
    $staffName = test_input($_POST['staffName']);  
    $customerName = test_input($_POST['customerName']);
    $answer = test_input($_POST['answer']);

    try 
    {
        $host = '127.0.0.1';
        $dbname = 'webapp';
        $user = 'root';
        $pass = '';
        $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    } 

    catch (PDOException $e) 
    {
        echo "An error occurred saving your details. Please, try again!";
    }

    $sql = "INSERT INTO `answers` (`staffName`, `customerName`, `answer`) VALUES (?,?,?);";
    $sth = $DBH->prepare($sql);

    $sth->bindParam(1, $staffName, PDO::PARAM_INT);
    $sth->bindParam(2, $customerName, PDO::PARAM_INT);
    $sth->bindParam(3, $answer, PDO::PARAM_INT);

    $sth->execute();

    $Ssql = "UPDATE questions SET Qstatus=1 WHERE answers.customerName=users.name FROM users, answers INNER JOIN users ON answers.userID=users.userID;";
    $Ssth = $DBH->prepare($Ssql);
    $Ssth->execute();
}

我正在努力解决的问题是如何将 Qstatus 更改为 1,当问题被回答时,以及如何在有可用答案时触发在 pageA.php 中显示包含所有答案的表格。希望这是可以理解的,并且非常感谢所有可能的帮助!谢谢!!

【问题讨论】:

  • 您可以尝试运行查询并立即看到存在语法错误。你在这个问题上付出了很多努力;尝试会容易得多。
  • 嗨,戈登。就像我之前提到的,我尝试过,但它并没有像我想要的那样工作。这就是为什么我在这里问其他人是否可以发现错误或更好的方法来做到这一点。如果我知道该怎么做或有什么问题,我就不会寻求帮助,不是吗?无论如何,谢谢。

标签: javascript php jquery mysql database


【解决方案1】:

在您的查询中有一些问题,所以我修改了。

 $Ssql = "UPDATE questions,users,answers          
         SET Qstatus=1 
         WHERE answers.customerName=users.name   
         AND answers.userID=users.userID;";

这里也可以添加一个条件。这是维护问题的答案one-to-many 关系。我不知道你的表数据结构,所以我不能在这里添加它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2016-04-12
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多