-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 =" の代わりに "WHERE programs.Programid IN" を使用します。
  • アポストロフィを削除します
  • && を 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 に答える