PHP+;MsSQL=复选框问题。需要帮助!

PHP+;MsSQL=复选框问题。需要帮助!,php,mysql,smarty,Php,Mysql,Smarty,我已经为这个话题工作了好几个星期了。我正在创建一个网页,从MsSQL服务器获取信息。我的问题是,有一个部分几乎没有复选框。 如果在SQL数据库中找到复选框,则假定选中这些复选框。 如果借款人使用“储蓄”、“支票”和“股票”中的资金,则应在HTML页面中选中这些复选框。在我的例子中,它只检查SQL搜索列表第一行上的内容。因此,如果列表的第一行有“Saving”,则只选中“Saving”复选框,而不选中列表中的其余复选框。我尝试使用循环(while($r->EOF)),但它会选择列表末尾的任何内容。

我已经为这个话题工作了好几个星期了。我正在创建一个网页,从MsSQL服务器获取信息。我的问题是,有一个部分几乎没有复选框。 如果在SQL数据库中找到复选框,则假定选中这些复选框。 如果借款人使用“储蓄”、“支票”和“股票”中的资金,则应在HTML页面中选中这些复选框。在我的例子中,它只检查SQL搜索列表第一行上的内容。因此,如果列表的第一行有“Saving”,则只选中“Saving”复选框,而不选中列表中的其余复选框。我尝试使用循环(while($r->EOF)),但它会选择列表末尾的任何内容。下面是我用来从SQL server中提取数据的内容。提前感谢您的帮助。真的很感激

function __construct($_ldid, $_lrid)

            $this->ldid = $_ldid;
            $this->lrid = $_lrid;

//$loan is defined in the PHP.class (which is shown below). 

$q = ("SELECT * FROM Tabel_name where loan_id = 885775")
$v = array($_ldid, $_lrid); 
$r = $db->Execute($q, $v); 
$this->downpaymenttype = $r->fields; //<- I think I have this line done wrong because it is suppose to store the outputs to an array. 

//So wherever the "$loan" is in HTML page, it will take the outputs from the above statement.

//The above code, which is in PHP.class file, outputs the following(or suppose to):
1    885775    Checking
2    885775    Saving
3    885775    Gift

在显示和设置标志之前,添加一个循环以遍历结果$r->fields只获取当前行的字段。您需要检查整个行集,以查看其他行是否已设置

类似(看起来您正在使用adodb或类似的东西)

现在在您的视图上检查标志。我没有使用smarty,但您必须将这些标志传递给模板,我相信您知道,然后更改复选框行以检查每个标志是否为真/假


希望有帮助

他是对的。如果从数据库中提取列,结果将以数组形式返回,每列一项。这意味着,如果只提取一列,结果行将是一个包含该列的一项数组。为了得到多行(每行是一个具有多列的数组),您必须不断从结果中提取行。感谢fredley的回复以及代码和dqhendricks,非常感谢。我正试图利用你的建议。到目前为止,我还没有幸运地让它工作。一旦我对这种情况有了更多的了解,我就会发帖子。是的,我正在使用smarty和adodb。
<input type="checkbox" name="DPS1[]" id="DPS1-{$key}" {if $loan-> downpaymenttype.downpaymentsource == "Checking"} checked {/if}/> 

<input type="checkbox" name="DPS2[]" id="DPS2-{$key}" {if $loan-> downpaymenttype.downpaymentsource == "Saving"} checked {/if}/> 

<input type="checkbox" name="DPS3[]" id="DPS3-{$key}" {if $loan-> downpaymenttype.downpaymentsource == "Gift"} checked {/if}/> 
$q = ("SELECT Tabel_name FROM loan_downpaymentsource where loan_id = 885775"); 
$v = array($_ldid, $_lrid)); 
$r = $db->Execute($q, $v); 
while(!$r->EOF) { 
$this->downpaymenttype = $r->fields; 
$r->MoveNext(); 
} 
$checking = false;
$saving = false;
$gift = false;

while(!$r->EOF){
    $row = $r->fields;
    switch($row->downpaymenttype){
        case 'Checking':
            $checking=true;
            break;
        case 'Saving':
            $saving=true;
            break;
        case 'Gift':
            $gift=true;
            break;
        default:
        break;
    }
    $r->moveNext();
}