显示带数据库值的复选框

时间:2015-08-10 09:47:51

标签: php html mysql checkbox

我遇到了部分代码问题。我想要检查最后一列中的复选框,如果相应的DB值是1,但是我的代码出现了问题,任何看到错误的人?它可能很简单,但我找不到它。

<?php
    $sql = "SELECT * FROM registered ORDER BY datum"; 
$myData=mysql_query($sql,$con) ;
?>

<table width="1100" border="1">
<tr>
<th style="text-align:center; padding:0 10px">naam</th>
<th style="text-align:center; padding:0 10px">betaald?</b></th>
</tr>

<?php

$betaald = $record['betaald'];

while($record = mysql_fetch_array($myData)) {

    echo  "<tr>";
    echo  "<td>" . $record['naam'] . "</td>";
    echo  "<td> <input type='checkbox' name='betaald' id='betaald' value='1' ". echo ($betaald==1 ? 'checked' : ''); . " ></td>";
    echo  "</tr>";

    }

mysql_close($con);
?>

4 个答案:

答案 0 :(得分:3)

<?php
$sql = "SELECT * FROM registered ORDER BY datum";
$myData = mysql_query($sql, $con);
?>

<table width="1100" border="1">
    <tr>
        <th style="text-align:center; padding:0 10px">naam</th>
        <th style="text-align:center; padding:0 10px">betaald?</b></th>
    </tr>

    <?php while ($record = mysql_fetch_array($myData)) { ?>

        <tr>
            <td><?php echo $record['naam'] ?></td>
            <td> 
                <input type='checkbox' name='betaald' id='betaald' value='1'
                        <?php if($record['betaald'] == 1){ ?>
                            checked="checked"
                        <?php } ?>
                        />
            </td>
        </tr>
   <?php  } ?>
</table>

答案 1 :(得分:0)

<?php
    $sql = "SELECT * FROM registered ORDER BY datum"; 
$myData=mysql_query($sql,$con) ;
?>

<table width="1100" border="1">
<tr>
<th style="text-align:center; padding:0 10px">naam</th>
<th style="text-align:center; padding:0 10px">betaald?</b></th>
</tr>

<?php



while($record = mysql_fetch_array($myData)) {

    $betaald = $record['betaald'];
    echo  "<tr>";
    echo  "<td>" . $record['naam'] . "</td>";
    echo  "<td> <input type='checkbox' name='betaald' id='betaald' value='1' ";
    echo $betaald==1 ? 'checked' : '';
    echo " ></td>";
    echo  "</tr>";

    }

mysql_close($con);
?>

您已在while循环外指定了$betaald值,因此$betaald中没有值。

我在while循环中包含了$betaald

答案 2 :(得分:0)

试试这个

<?php
    $sql = "SELECT * FROM registered ORDER BY datum";
    $myData= mysql_query($sql) ;
?>

    <table width="1100" border="1">
    <tr>
        <th style="text-align:center; padding:0 10px">naam</th>
        <th style="text-align:center; padding:0 10px">betaald</b></th>
    </tr>

<?php

    while($record = mysql_fetch_array($myData))
    {
        ?>

        <tr>
            <td> <?php echo  $record['naam'] ?></td>
            <td> <input type='checkbox' name='betaald' id='betaald' value='1' <?php echo ($record['betaald']==1 ? 'checked' : '')?>> </td>
        </tr>
<?php
    }

    mysql_close($con);
?>

mysql_query($sql)无需定义$con

  

注意:自PHP 5.5.0起,此扩展程序已弃用,自PHP 7.0.0起已被删除

答案 3 :(得分:0)

您的php和html代码需要进行一些更改。首先,我对你的代码感到困惑。让我清楚一下。

第1点[name =&#39; betaald&#39;]:如果您有这样的名字,您将无法获得多个选定的值。

第2点[id =&#39; betaald&#39;]: ID必须在页面中唯一。

第3点[值=&#39; 1&#39;]:如果所有值都相同,您将如何区别?

所以你的代码应该是这样的:

<?php
$sql = "SELECT * FROM registered ORDER BY datum"; 
$myData=mysql_query($sql,$con) ;
?>

<table width="1100" border="1">
<tr>
<th style="text-align:center; padding:0 10px">naam</th>
<th style="text-align:center; padding:0 10px">betaald?</b></th>
</tr>

    <?php
$betaald = $_POST['betaald'];
$i = 1;
while($record = mysql_fetch_array($myData)) {

    echo  "<tr>";
    echo  "<td>" . $record['naam'] . "</td>";
    echo  "<td> <input type='checkbox' name='betaald[]' id='betaald".$i."' value='".$record['betaald']."' ";
    if ($record['betaald'] == $betaald)
    {
        echo "checked";
    }
    echo " ></td>";
    echo  "</tr>";
    $i++;
    }

mysql_close($con);
?>