【问题标题】:Will only display first part of mysql_fetch_array只会显示 mysql_fetch_array 的第一部分
【发布时间】:2014-01-30 05:58:49
【问题描述】:

虽然之前有人问过这个问题的变体,但没有一个能帮助我解决这个难题。目前我放在一起的表格更新数据库很好等,问题是当我去编辑字段时,只显示数据的第一部分,例如,如果数据是“晴天”,那么当我点击编辑这个字段我得到的只是'Sunny',所以如果我然后点击更新,它会将数据库编辑回Sunny。我错过了什么吗?!

提前致谢。

    // Connects to your Database
    $query=mysql_connect("localhost", "cl52-abcdef","abcdef") or die(mysql_error());
    mysql_select_db("cl52-abcdef",$query);
    ?>
    <html>
    <body>
    <?php
    if(isset($_GET['id']))
    {
      $id=$_GET['id'];
      if(isset($_POST['submit']))
      {
        $holdesc1=$_POST['holdesc1'];
        $holdest1=$_POST['holdest1'];
        $rrp1=$_POST['rrp1'];
        $cpe1=$_POST['cpe1'];
        $ea1=$_POST['ea1'];

        $query3=mysql_query("update DealOne set holdesc1='$holdesc1',holdest1='$holdest1',rrp1='$rrp1',cpe1='$cpe1',ea1='$ea1' where id='$id'");
        if($query3)
        {
          header('location:list.php');
        }
      }
      $query1=mysql_query("select holdesc1, holdest1, rrp1, cpe1, ea1 from DealOne where id='$id'");
      $query2=mysql_fetch_array($query1);
      ?>
        <form method="post" action="">
        1 <input type="text" value=<? echo $query2['holdesc1']; ?> name="holdesc1"><br>
        2 <input type="text" value=<? echo $query2['holdest1']; ?> name="holdest1"><br>
        3 <input type="text" value=<? echo $query2['rrp1']; ?> name="rrp1"><br>
        4 <input type="text" value=<? echo $query2['cpe1']; ?> name="cpe1"><br>
        5 <input type="text" value=<? echo $query2['ea1']; ?> name="ea1"><br><br>
        <input type="submit" name="submit" value="update" />
        </form>
        <?php
    }
    ?>
    </body>
    </html>

【问题讨论】:

  • mysql_query 已经被弃用了一段时间。切换到 mysqli 或 PDO。
  • 是的 - 您的 value 属性中缺少引号。您必须将它们引用为value="&lt;?php echo htmlspecialchars($query2[...], ENT_QUOTES); ?&gt;" 查看浏览器的页面源代码,您会发现问题所在。
  • 你是说你的数据总是在第一个空格之前被截断?

标签: php mysql sql arrays fetch


【解决方案1】:

仅显示数据的第一部分,因为您的 value 属性值没有引号。否则,您的 HTML 看起来像:&lt;input type="text" value=Sunny day name="holdesc1"&gt;

将您的文本输入更改为以下内容:

<input type="text" value="<? echo $query2['holdesc1']; ?>" name="holdesc1"><br>
<input type="text" value="<? echo $query2['holdest1']; ?>" name="holdest1"><br>
<input type="text" value="<? echo $query2['rrp1']; ?>" name="rrp1"><br>
<input type="text" value="<? echo $query2['cpe1']; ?>" name="cpe1"><br>
<input type="text" value="<? echo $query2['ea1']; ?>" name="ea1"><br><br>

【讨论】:

  • 非常感谢,这么简单,就是搞不懂!,ta
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
相关资源
最近更新 更多