UPDATE不知道更新的位置

时间:2012-10-27 07:56:13

标签: php mysql sql select

我正在尝试更新数据库。我可以完美连接。当我尝试为某个用户(正在使用该网站的用户)更新时,我的问题就来了。当我告诉代码人员ID时,它会在正确的位置更新。比如......

$id = '1';

然而,当我这样做时

$id = "select id from users where fname=$fname and lname=$lname";

没有任何反应,也没有出现错误消息。这让我疯了,因为我不知道它不会起作用。整个代码在这里,看看是否有人可能知道为什么这不起作用。谢谢任何人的任何提示。

<body>
    <h1 id="title"> Quiz </h1>
    <?php
        session_start();

        $connection = mysql_connect("mysql15.000webhost.com", "a4987634_quiz", "***********")
        or die (mysql_error());

        mysql_select_db("a4987634_quiz", $connection)
        or die (mysql_error());

        $fname = $_SESSION['fname'];
        $lname = $_SESSION['lname'];
        $id = "select id from users where fname='matthew' and lname='briant'";

        $answer = $_POST['answer'];

        if(isset($_POST['answer']) &&
        $_POST['answer'] == 'public enemy')
        {
    ?>
    <h3 id = "correct"> Correct </h3>
    <?php

        $sqlcorrect = "UPDATE users SET q1 = 'correct' WHERE id = $id";

        mysql_query($sqlcorrect);
        (mysql_error());

        }
        else {
    ?>
    <h3 id = "incorrect"> Incorrect </h3>
    <?php

        $sqlwrong = "UPDATE users SET q1 = 'wrong' WHERE id = $id";
        mysql_query($sqlwrong);
        (mysql_error());

        }
    ?>
</body>
</html>

我甚至得到了fname和lname,所以我不明白这是怎么回事。

3 个答案:

答案 0 :(得分:0)

  

...但是当我这样做时

$id = "select id from users where fname=$fname and lname=$lname";

你确实意识到这没有任何作用,但是为变量分配一个字符串,对吗?

你必须

  • 运行查询$result = mysql_query("SELECT whatever FROM wherever")
  • 获取结果mysql_fetch_row($result)
  • 在您的更新查询中使用它

或者,更好的是,您可以制定更好的UPDATE脚本:

$updateSQL = "UPDATE users SET q1 = 'correct' WHERE lname=$lname and fname=$fname";

运行此单个命令将允许为具有指定名称属性的所有用户将q1设置为“正确”。

答案 1 :(得分:0)

$Id = mysql_fetch_array(mysql_query("select id from users where fname='matthew' and lname='briant'"));
$id=$Id['id];

像这样替换

答案 2 :(得分:0)

试试这个

$sql = "select id from users where fname='matthew' and lname='briant'";
$res = mysql_query($sql);
$row = mysql_fetch_array($res);
$id = $row['id'];

$sqlcorrect = "UPDATE users SET q1 = 'correct' WHERE id = ".$id;
//or 
//subquery
$sqlcorrect = "UPDATE users SET q1 = 'correct' WHERE id = (select id from users where fname='matthew' and lname='briant');
//use 'in' if subquery return more than one result
$sqlcorrect = "UPDATE users SET q1 = 'correct' WHERE id in (select id from users where fname='matthew' and lname='briant');