来自数据库问题的 PHP 复选框


php checkboxes from database issue

我有一个数组,里面有 8 个不同的应用程序名称。我循环浏览它并选中一个复选框,如果用户在上次登录时选择了该选项。

foreach($appsArray as $app){ 
    $query = " SELECT UK, SPAIN, FRANCE, BENELUX, GERMANY, SWEEDEN 
    FROM ".$app." 
    WHERE userid = ".$_SESSION['user']['id']; 
    $stmt = $db->prepare($query); 
    $result = $stmt->execute(); 
    $result = $stmt->fetchAll(); 
    echo("<td>".$app."</td> <td><center>
    <input type = 'checkbox' name='"".$app."[]'"". 
    "value ='"".$app."UK'" checked='"".$result[0]['UK']."'"/> ");
    $result=""; 
} 

但是,这在一定程度上是有效的 - 我为第一个应用程序选择的选项会反映在所有应用程序中。这一定与 php 中的 foreach 循环方式有关,但我不确定如何。

任何建议将不胜感激。

编辑:为了澄清,我为一个应用程序选择的选项反映在所有应用程序复选框中。我希望他们独立。

我相信

问题可能更多地在于您如何使用复选框的值。我遇到了一些问题,如果您不使用 checked="checked","checked"属性不喜欢工作。尝试这样的事情。

$checked = $result[0]['UK'] ? ' checked="checked"' : '';
echo '<td>'.$app.'</td><td><center><input type="checkbox" name="'.$app.'[]"'. 
    ' value="'.$app.'UK"'.$checked.' /> ';

如果这仍然不起作用,请确保对$result执行var_dump或类似操作,以确保查询正常工作。

一旦你有了这个工作,我可能会看到将这些查询合并为一个。我可以帮助让 8 个子查询命中数据库,而不是 8 个单独的数据库调用。