0

我在显示带有特殊字符的数据时出错。我想显示这个词“C'har”然后发生 mysql_fetch_array() 错误。

这是我的完整代码:

<?php
header('Content-Type:text/html; charset=UTF-8');

$con = mysql_connect("localhost","root","") or die ("Cannot Connect to Server");
mysql_select_db("sarangani",$con) or die ("Cannot Connect to database");


$result = mysql_query("SELECT * from fes_category");

echo "<form method=\"post\" id=\"selct\" name=\"selct\">";

while($row = mysql_fetch_array($result))
{

    $new = "<input type=\"submit\" id=\"ss\" name=\"ss\" value='".htmlspecialchars($row['fes_name'], ENT_QUOTES)."' class=\"ss\">";
    echo $new;

}


echo "<input type=\"text\" name=\"subs\" id=\"subs\">";
echo "<input type=\"submit\" name=\"sub\" id=\"sub\">";
echo "</form>";

    if(isset($_POST['ss']))
    {


    $sel = $_POST['ss'];
    $results = mysql_query("SELECT fes_name from fes_category WHERE fes_name='".$sel."'");
    $row = mysql_fetch_array($results);
    if($sel == $row['fes_name'])
    {
        echo $sel;
    }
    }

?>

4

1 回答 1

-1

你不能在<input type='submit' ...里面放 2 个,<form></form>这会给浏览器和用户造成混乱。

您的查询可能返回 0 行

$results = mysql_query("SELECT fes_name from fes_category WHERE fes_name='".$sel."'");

请放这个,以检查您的 SELECT 语句何时期望返回一些记录

if(mysql_num_rows($results) > 0) <-- this query
{
    if($sel == $row['fes_name'])
    {
       echo $sel;
    }
}
else
{
    echo 'Doesn't return any records!';
}

如您所知,您在文本框中放置了一些撇号,您需要addslashes($_POST['ss'])在执行查询之前使用。

于 2013-08-18T03:49:51.353 回答