我有问题。我需要使选项是从mySQL DB动态填充的动态选择标记。我有这个代码,但它不工作。因此,如果你有一些正确的方法或想法,我将非常感谢you:)非常感谢!
<SELECT>
<?php
$con = mysql_connect("localhost", "root", "123456");
mysql_select_db("aplikace",$con);
$result = ("SELECT * kod FROM protokoly".
"ORDER BY kod");
$rs = mysql_query($result);
$nr = mysql_num_rows($rs);
for ($i=0; $i<$nr; $i++) {
$r = mysql_fetch_array($rs);
echo "<OPTION VALUE=\"".$r["kod"]."\">".$r["kod"]."</OPTION>";
}
?>
</SELECT>发布于 2012-10-30 01:38:20
正如@Michael Berkowski在评论中建议的那样,目前在protokoly和ORDER BY之间没有空格。这将导致MySQL错误,但您看不到该错误,这将使故障排除变得困难。
您可以修改代码,以便在发生错误时输出错误,如下所示:
$rs = mysql_query($result) or die('Error during query: ' . mysql_error());如果mysql_query()失败,调用mysql_error()的die()将输出最新MySQL错误的内容,帮助您捕获问题。
编辑:
为了说明die()的用法,我编辑了如下代码:
<?php
// Place at top of file
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<SELECT>
<?php
$con = mysql_connect("localhost", "root", "123456") or die('Connection failed: ' . mysql_error());
mysql_select_db("aplikace", $con) or die('Cannot select database: ' . mysql_error());
$result = ("SELECT * kod FROM protokoly ORDER BY kod");
$rs = mysql_query($result) or die('Query failed: ' . mysql_error());
$nr = mysql_num_rows($rs) or die('Failed to get num_rows: ' . mysql_error());
for ($i = 0; $i < $nr; $i++)
{
$r = mysql_fetch_array($rs);
echo "<OPTION VALUE=\"{$r['kod']}\">{$r['kod']}</OPTION>";
}
?>
</SELECT>请注意,使用mysql_...()函数的语句在die()中包含mysql_error(),因此将输出任何MySQL错误。我还在echo语句的双引号字符串中用括号括起了数组引用,以简化该语句并消除多个连接。
发布于 2012-10-30 07:10:48
<SELECT>
<?php
//added error checking.
if (!($con = mysql_connect("localhost", "root", "123456")))
{
die("Could not connect to database server. " . mysql_errno() . " => " . mysql_error());
}
//added error checking.
if (!mysql_select_db("aplikace",$con))
{
die("Could not select database. " . mysql_errno() . " => " . mysql_error());
}
//removed *, pushed ORDER BY onto same line
$sql = "SELECT kod FROM protokoly ORDER BY kod";
//added error checking. added connection parameter
if (!($rs = mysql_query($sql,$con)))
{
die("Could not execute query. " . mysql_errno() . " => " . mysql_error());
}
//added condition
if (($nr = mysql_num_rows($rs)) == 0)
{
die("No options to give!");
}
//changed to while loop that checks result of function return
while ($r = mysql_fetch_array($rs))
{
//changed " to ' to get rid of \"
echo '<OPTION VALUE="' . $r["kod"] . '">' . $r["kod"] . '</OPTION>';
}
?>
</SELECT>https://stackoverflow.com/questions/13126736
复制相似问题