-1

私はこれを理解しようとしてきました、そして私は絶望的に立ち往生しています。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;
}
4

1 に答える 1

2

$row['type'] = "2"

=割り当てです、あなた==は比較したいです。その行に到達すると、変数に値が割り当てられます。

また、文字通りを最初に置くという回避策の習慣を身につけることもできます。

"2" = $row['type']リテラルに割り当てることができないため無効であり、予期しない動作ではなくエラーが発生します。これにより、を使用するように通知されます==

于 2012-11-19T04:10:35.560 に答える