使用复选框在列表中显示SQL数据

时间:2011-05-24 15:26:50

标签: php sql list checkbox

我不知道该怎么做,但我有一个SQL数据库,我在那里查询信息。我想在一个网页上的列表中显示查询结果,并在开头有一个复选框,以便用户可以选择他们想要修改的信息记录。

我的数据库有超过20列,但我只想显示与我搜索的查询有关的5列数据。目前,我在文本字段中重新填充了数据。但我想更进一步,将数据显示在水平列表中。

基本上是这样的:

客户端在数据库中搜索订单。假设有两个不同的订单匹配数据库中的搜索条件。我想在数据库中为这两个订单显示5列数据,每个订单旁边都有一个复选框,这样客户就可以选择要修改的订单。

我不确定用于在带有复选框的列表中显示sql数据的代码。谢谢!

2 个答案:

答案 0 :(得分:2)

以下代码演示了如何:

  1. 查询您的数据库
  2. 在表格中显示输出,每个条目旁边都有复选框
  3. 将所选复选框提交到页面
  4. 页面重新加载时显示选择
  5. 请注意您可能需要修改的一些参数,例如:数据库名称,用户名,密码,主键名称(“id”)。

        

    # connect to mysql
    $db_link = mysql_connect('localhost', 'root', '');
    if (!$db_link)
        die('Cannot connect : ' . mysql_error());
    
    # select database
    $db_selected = mysql_select_db('test_db', $db_link);
    if (!$db_selected)
        die ('Cannot select database : ' . mysql_error());
    
    # execute search query
    $sql = 'SELECT * FROM `test_table` LIMIT 20';
    $result = mysql_query($sql);
    
    # check result
    if (!$result)
        die('Could not successfully run query: ' . mysql_error());
    
    # display returned data
    if (mysql_num_rows($result) > 0)
    {
        ?>
        <form action="" method="post">
        <table style="border: 1px solid black">
            <?php
                while ($row = mysql_fetch_assoc($result))
                {
                    echo '<tr><td>';
                    echo '<input type="checkbox" name="selected[]" value="'.$row['id'].'"/>';
                    echo '</td>';
                    foreach ($row as $key => $value)
                        echo '<td>'.htmlspecialchars($value).'</td>';
                    echo '</tr>';
                }
            ?>
        </table>
        <input type="submit"/>
        </form>
        <?php
    }
    else
        echo '<p>No data</p>';
    
    # free resources
    mysql_free_result($result);
    
    # display posted data
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    
    ?>
    

答案 1 :(得分:0)

基本上是这样的:

$sql = "select primaryKey, field1, field2, ... FROM table"
$result = mysql_query($sql) or die(mysql_error());

echo <<<EOL;
<form ...>
<table>
<tr>
    <th></th>
    <th>Field 1</th>
    <th>Field 2</th>
    ...
</tr>

EOL;

while ($row = mysql_fetch_asssoc($result)) {
    echo <<<EOL
<tr>
    <td><input type="checkbox" name="primaryKey[]" value="{$row['primaryKey']}" /></td>
    <td>{$row['field1']}</td>
    <td>{$row['field2']}</td>
    ...
</tr>

EOL;
}

echo <<<EOL
</table>
<input type="submit" />
</form>

EOL;

如果您的意思是<select>中的列表,那么基本逻辑的工作原理相同,只需调整html即可根据需要输出<select>和一系列<option>。< / p>