首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MYSQL DB填充的动态选择标记

问从MYSQL DB填充的动态选择标记
EN

Stack Overflow用户
提问于 2012-10-30 01:32:36
回答 2查看 1.3K关注 0票数 0

我有问题。我需要使选项是从mySQL DB动态填充的动态选择标记。我有这个代码,但它不工作。因此,如果你有一些正确的方法或想法,我将非常感谢you:)非常感谢!

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

发布于 2012-10-30 01:38:20

正如@Michael Berkowski在评论中建议的那样,目前在protokoly和ORDER BY之间没有空格。这将导致MySQL错误,但您看不到该错误,这将使故障排除变得困难。

您可以修改代码,以便在发生错误时输出错误,如下所示:

代码语言:javascript
复制
$rs = mysql_query($result) or die('Error during query: ' . mysql_error());

如果mysql_query()失败,调用mysql_error()的die()将输出最新MySQL错误的内容,帮助您捕获问题。

编辑:

为了说明die()的用法,我编辑了如下代码:

代码语言:javascript
复制
<?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语句的双引号字符串中用括号括起了数组引用,以简化该语句并消除多个连接。

票数 2
EN

Stack Overflow用户

发布于 2012-10-30 07:10:48

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13126736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档