问题描述
|
我不确定如何执行此操作,但是我有一个sql数据库,可在其中查询信息。我想将查询结果显示在网页的列表中,开头带有一个复选框,以便用户可以选择要记录的信息记录。
我的数据库有20多个列,但我只想显示大概5列与我搜索的查询有关的数据。目前,我在文本字段中重新填充了数据。但是我想更进一步,使数据显示在水平列表中。
基本上是这样的:
客户端在数据库中搜索订单。假设有2个不同的订单与数据库中的搜索条件匹配。我想说来自数据库的5列数据,这2个订单显示在页面上,每个订单旁边都有一个复选框,因此客户端可以选择他们想要修改的订单。
我不确定用于在带有复选框的列表中显示sql数据的代码。谢谢!
解决方法
下面的代码演示了如何:
查询数据库
在每个条目旁边带有复选框的表中显示其输出
将选定的复选框提交到页面
页面重新加载时显示选择
提防您可能需要修改的一些参数,例如数据库名称,用户名,密码,主键名称(\“ 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>\';
?>
,基本上是这样的:
$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>
\。