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