php mysql_fetch_array 是不是适用于 html 输入框?

Posted

技术标签:

【中文标题】php mysql_fetch_array 是不是适用于 html 输入框?【英文标题】:does php mysql_fetch_array works with html input box?php mysql_fetch_array 是否适用于 html 输入框? 【发布时间】:2011-01-28 22:44:36 【问题描述】:

这是我的整个 php 代码:

<?php if(empty($_POST['selid']))
        echo "no value selected";  
        else 
        
            $con = mysql_connect("localhost","root","");
            if(mysql_select_db("cdcol", $con))
                
                    $sql= "SELECT * FROM products where Id = '$_POST[selid]'";

                    if($result=mysql_query($sql))
                       

                        echo "<form name=\"updaterow\" method=\"post\" action=\"dbtest.php\">";
                        while($row = mysql_fetch_array($result))
                         
                        echo "Id :<input type=\"text\" name=\"ppId\" value=".$row['Id']." READONLY></input></br>";
                        echo "Name :<input type=\"text\" name=\"pName\" value=".$row['Name']."></input></br>";
                        echo "Description :<input type=\"text\" name=\"pDesc\" value=".$row['Description']."></input></br>";
                        echo "Unit Price :<input type=\"text\" name=\"pUP\" value=".$row['UnitPrice']."></input></br>";
                        echo "<input type=\"hidden\" name=\"mode\" value=\"Update\"/>";

                        
                        echo "<input type=\"submit\" value=\"Update\">";
                        echo "</form>";
                    
                    else echo "Query ERROR";
                
        
?>

问题 这里是,....如果我使用mysql_fetch_array($result) 从数据库中获得的值是这样的:(比如描述是:)“我的产品”

然后; 在输入框中它只显示 "my" 单词(或数字) 在“SPACE”(即空白)之后没有显示? 像上面这样的输入框可以显示两个或多个单词的数据吗(用空格分隔)?

【问题讨论】:

使用 mysqli 而不是 mysql_connect。以及 FastTemplate 等模板系统 【参考方案1】:

html 解析器无法知道 的意思是 value=abc def。它必须将其解析为两个属性,属性value 具有值abc 和属性def 没有值。

您必须将值括在引号中,例如 您还必须在值内将 " 编码为 "。否则 html 解析器将再次混淆,因为它无法知道 value="abc"def" 中的第二个 " 不是分隔符,而是内容的一部分. 你可以使用htmspecialchars()。

例如

while($row = mysql_fetch_array($result))

  printf('
    Id :<input type="text" name="ppId" value="%s" READONLY></input><br>
    Name :<input type="text" name="pName" value="%s"></input><br>
    Description :<input type="text" name="pDesc" value="%s"></input><br>
    Unit Price :<input type="text" name="pUP" value="%s"></input><br>";
    <input type="hidden" name="mode" value="Update"/>',
    htmlspecialchars($row['Id']),
    htmlspecialchars($row['Name']),
    htmlspecialchars($row['Description']),
    htmlspecialchars($row['UnitPrice'])
  );

【讨论】:

【参考方案2】:
echo "Unit Price :<input type=\"text\" name=\"pUP\" value=\"".$row['UnitPrice']."\"></input></br>";

您需要用引号将value 括起来。

【讨论】:

以上是关于php mysql_fetch_array 是不是适用于 html 输入框?的主要内容,如果未能解决你的问题,请参考以下文章

php while循环和foreach循环 mysql_fetch_array()

PHP mysql_fetch_array与mysql_fetch_row的区别

43)PHP,mysql_fetch_row 和mysql_fetch_assoc和mysql_fetch_array

PHP中mysql_fetch_row()mysql_fetch_assoc()和mysql_fetch_array()的联系

从mysql转换为mysqli(mysql_fetch_array)[重复]

mysql_fetch_array() 期望参数 1 是资源,给定对象 [重复]