使用PHP变量从mysql获取数据

使用PHP变量从mysql获取数据,php,mysql,Php,Mysql,我有一个每日问题测验页面,我有两个数据库表,名称如下: 1) qbank 2) 用户日志 现在,一旦用户提交了答案,它会将用户带到grade.php,如果他/她正确回答了问题,我将在那里访问。我的问题是以下代码: $sql = ("SELECT * FROM users_log WHERE username = '$username_wanted'"); $result = $conn->query($sql); if ($result->num_rows &

我有一个每日问题测验页面,我有两个数据库表,名称如下:

1) qbank 2) 用户日志

现在,一旦用户提交了答案,它会将用户带到grade.php,如果他/她正确回答了问题,我将在那里访问。我的问题是以下代码:

$sql = ("SELECT * FROM users_log WHERE username = '$username_wanted'");
$result = $conn->query($sql);
            if ($result->num_rows > 0) {
                while($row = $result->fetch_assoc()) {
                    $myuser = $row["username"];
                    echo $myuser;
                    echo "It found the user";
                    $mycolumn = $row_y[$_POST['question-id']];
                    echo $mycolumn;
                                        }
            }       
我想做的是从“users_log”表中选择该列,其中的列名等于用户在上一页提交的“qbank”表中的问题id

假设我定义了这样一个变量:

$questionID = "001"
使用该变量获取数据的正确方法是什么:

$mycolumn = $row_y[$questionID];
谢谢,
oliver_foxx

您必须构造这样的查询(如果我理解正确的话)

当然,这里有一些问题,但超出了这个问题的范围。您可能需要研究这些:

1) 你很容易受到伤害


2) 我对您的sql结构不是很有信心。似乎每个问题都有一个专栏;听起来很糟糕

你能给我们看一下表的结构吗?用户日志表的结构:username | 001 | 002 | 003 |等等…001002是什么等等?我认为你永远不应该把原始请求数据放入query@AlexanderHolman我在回答中特别提到了这一点。“但是有超出这个问题范围的问题”谢谢,我想在用户日志中为每个问题添加+/-,看看用户回答是否正确,并得到相应的分数。您是否建议其他替代设计?@OliverFox如果用户必须拥有所有这些问题的记录,并且这些问题永远不会改变,也不会添加或删除任何问题,那么您的方法将是很好的。听起来不太可能。我建议使用一个表
users\u log
,其中列有
username,question\u id
,这样您就可以随意添加和删除问题。另外,一定要看到sql注入问题。老实说,你应该现在就去读,而不是规范化/非规范化你的数据库结构。你没有说明原因。我只是觉得你的例子应该排除像那样的基本问题
$sql = "SELECT username, ".$_POST['question-id']." FROM users_log WHERE username = '".$username_wanted."'";