我对下面的代码有一些问题。。。本质上,有几个值需要存储在$sqlBAnswer中,但是如果我简单地在后面加上[],它就会保存值“Array”。

//Find the answer given by the user to the last answered question
$sqlB = mysql_query("SELECT Answer FROM Responses WHERE User = $sqlAPKID");
//If the operation produces an error, output an error message
if (!$sqlB) {
    die('Invalid query for SQLB: ' . mysql_error());
}
//Count the number of rows output
$sqlBCount = mysql_num_rows($sqlB);
//If rows exist, define the values
if ($sqlBCount > 0) {
    while ($row = mysql_fetch_array($sqlB)) {
        $sqlBAnswer = $row["Answer"];
    }
}

假设$sqlBAnswer确实保存了多个值,那么我需要执行另一个只产生一个值的查询(即$sqlBAnswer中存储的值只有一个将在结果集中)。
我计划使用foreach循环围绕以下代码执行此操作:
//Find the number of the next question to be answered based on the user's previous answer and the question they answered
$sqlC = mysql_query("SELECT NextQuestion FROM Answers WHERE QuestionNumber = $sqlALastQuestionAnswered AND PKID = $sqlBAnswer");
//If the operation produces an error, output an error message
if (!$sqlC) {
    die('Invalid query for SQLC: ' . mysql_error());
}
//Count the number of rows output
$sqlCCount = mysql_num_rows($sqlC);
//If rows exist, define the values
if ($sqlCCount > 0) {
    while ($row = mysql_fetch_array($sqlC)) {
        $sqlCNextQuestion = $row["NextQuestion"];
    }
}

最后,我需要的是一个值和一个只针对sqlCNextQuestion的值,但是我不能把我的头放在键和值以及其他东西上,不管我读了多少文档。如果有人能向我解释并告诉我怎样才能实现我所追求的,我将非常感激!
谢谢:)

最佳答案

在您的代码中,$sqlBAnswer不是一个数组,而是一个普通变量。
您的代码:

if ($sqlBCount > 0) {
    while ($row = mysql_fetch_array($sqlB)) {
        $sqlBAnswer = $row["Answer"];
    }
}

只需循环查询结果中的行,然后在每一行中将$row[“Answer”]的值重新分配给$sqlBAnswer。
如果要将这些值保存到数组中,只需执行以下操作:
$sqlBAnswer = array(); //that creates a blank array to assign values to
if ($sqlBCount > 0) {
    while ($row = mysql_fetch_array($sqlB)) {
        $sqlBAnswer[] = $row["Answer"]; //note the '[]', which tells php to add the new value to the array
    }
}

然后,您可以按以下方式执行foreach:
foreach($sqlBAnswer as $value){
    // use your code with $sqlBAnswer substituted by $value
}

然而,至于如何选择最终所需的$sqlCAnswer值,您还没有充分描述您到底想要什么来回答这个问题。这段代码将遍历$sqlBAnswer的所有值,并可能生成$sqlCAnswer的许多值(取决于您的数据库),因此您需要完善您的问题或自己找出解决该问题的方法。

关于php - PHP foreach无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14579218/

10-12 03:01