私はこれを理解しようとしてきました、そして私は絶望的に立ち往生しています。MySQLデータベースにtypeという名前の列があります。すべて1が含まれています。以下の関数$row[type]
では、whileループで常に2が返されますが、その理由がわかりません。
私より賢い人が、どんな状況で起こり得るかを説明できますか?データベースでは1であることがわかっていますが、ここでは2になります。基本的なものが欠けていると確信していますが、これは初めてで、初めて独自の関数を作成しようとしています。この関数の他のすべてはうまく機能し、どこが間違っているのかわかりません。
function getQuestionsVendorForm($dbh, $hosp)
{
$sql1 = $dbh->prepare('
SELECT COUNT(*)
FROM sub_questions
WHERE hospital_id = :hosp
');
$sql1->bindValue('hosp', $hosp);
$sql1->execute();
$num_rows = $sql1->fetchcolumn();
$sql = $dbh->prepare('
SELECT *
FROM sub_questions
WHERE hospital_id = :hosp
');
$sql->bindValue('hosp', $hosp);
$sql->execute();
$question_table = '';
if ($num_rows > 0) {
$isOdd = true;
while (($row = $sql->fetch(PDO::FETCH_ASSOC)) !== false) {
if ($isOdd) {
$question_table .= '<div>';
}
if (!$isOdd) {
$question_table .= '<div>';
}
$question_table .= "<label class='dontend'>${row[question]}</label>";
if ($row['type'] = "2") {
$question_table .= "<input type='radio' name='quest_$row[question_id]' value='Yes'>Yes";
$question_table .= "<input type='radio' name='quest_$row[question_id]' value='No'>No";
} else {
$question_table .= "<textarea name='quest_$row[question_id]' rows='1' id=''></textarea>";
}
$question_table .="$row[type]";
$question_table .= '</div>';
$isOdd = !$isOdd;
}
;
} else {
$question_table = '';
$question_table .= '<div>';
$question_table .= 'No additional questions have been added by this hospital.';
$question_table .= '</div>';
}
;
return $question_table;
}