0

我正在尝试更新数据库。我可以完美连接。当我尝试为某个用户(使用该网站的用户)进行更新时,我的问题就出现了。当我告诉代码人员 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 出现,所以我不明白这是怎么回事。

4

3 回答 3

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 设置为“正确”。

于 2012-10-27T07:58:41.873 回答
0
$Id = mysql_fetch_array(mysql_query("select id from users where fname='matthew' and lname='briant'"));
$id=$Id['id];

像这样替换

于 2012-10-27T08:00:12.697 回答
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');
于 2012-10-27T08:00:33.090 回答