-1

请帮忙。我需要打印此查询的结果,但没有出现

$fetch_a = "
            SELECT
              programs.Program_Description
            FROM
              programs
            WHERE
              programs.Programid = 
                ('
                   SELECT
                     memberprogram.Programid
                   FROM
                     memberprogram
                   WHERE
                     memberprogram.Memberid = $Memberid && 
                     memberprogram.Option_No = 'Option A'
                  ')
             ";

$result_a = mysqli_query($dbc, $fetch_a);

echo $result_a;
4

2 回答 2

1

您应该首先使用 fetch_row 或 fetch_array

mysqli_fetch_row 示例:

while($row=mysqli_fetch_row($result_a))
echo $row[0]."<br/>";

编辑:就查询而言:

  • 使用“WHERE programs.Programid IN”而不是“WHEREprograms.Programid =”
  • 去掉撇号
  • 用 AND 替换 &&
于 2013-09-18T23:38:44.363 回答
0

好的,第一件事是你的查询是一团糟。在不知道您的架构设计细节的情况下,我会对此进行猜测

// note I'm using HEREDOC format
$sql = <<<_SQL
SELECT p.Program_Description
FROM programs p
WHERE EXISTS (
    SELECT 1 FROM memberprogram m
    WHERE m.Option_No = 'Option A'
    AND m.Memberid = ?
    AND m.Programid = p.Programid
)
_SQL;

然后,您应该真正将参数绑定与准备好的语句一起使用。例如

$stmt = $dbc->prepare($sql);
$stmt->bind_param('i', $Memberid); // assuming $Memberid is an integer
$stmt->execute();
$stmt->bind_result($programDescription);
$stmt->fetch();
$stmt->close();

echo $programDescription;
于 2013-09-18T23:48:44.317 回答