【问题标题】:trying to display mysql data in an html text field试图在 html 文本字段中显示 mysql 数据
【发布时间】:2013-08-28 21:57:59
【问题描述】:

我希望能够从我的网络浏览器查看和编辑表格中包含的信息,但是我无法将当前值拉到 html 文本字段中。

任何人都可以解释一下我对 php 很陌生吗?

表名:request_details

列名:id、name、email_address

我的 PHP 代码是:

<?
$order = "SELECT * FROM request_details WHERE id='$id'";
$result = mysql_query($order);
$row = mysql_fetch_array($result);
?>

HTML 代码

<form method="post" action="edit_data.php">
  <input type="hidden" name="id" value="<?php echo "$row[id]"?>">
    <tr>        
      <td>Name</td>
      <td>
        <input type="text" name="name" size="20" value="<?php echo "$row[name]"?>">
      </td>
    </tr>
    <tr>
      <td>Email Address</td>
      <td>
        <input type="text" name="email_address" size="40" value="<?php echo "$row[email_address]"?>">
      </td>
    </tr>
    <tr>
      <td align="right">
        <input type="submit" 
      name="submit value" value="Edit">
      </td>
    </tr>
  </form>

为了让它更容易一点,当我使用实际 ID 而不是变量时,它可以工作,例如

<?
  include "db.inc.php";//database connection
  $order = "SELECT * FROM request_details WHERE id='19'";
  $result = mysql_query($order);
  $row = mysql_fetch_array($result,MYSQL_ASSOC);
  ?>

上面显示,下面不显示

<?
  include "db.inc.php";//database connection
  $order = "SELECT * FROM request_details WHERE id='$id'";
  $result = mysql_query($order);
  $row = mysql_fetch_array($result,MYSQL_ASSOC);
  ?>

好的,所以前提是我有两个网页,第一个显示我需要的所有信息

代码是:

<table>
    <tr>
        <td>
            <table border="1">
                <tr>
                    <td>Name</td>
                    <td>Telephone Number</td>
                    <td>Email Address</td>
                    <td>Venue</td>
                    <td>Event Date</td>
                    <td>Guests</td>
                    <td>Chair Cover Colour</td>
                    <td>Sash Colour</td>
                    <td>Price</td>
                    <td>Damage Deposit</td>
                    <td>Status</td>
                    <td>Notes</td>
                </tr>
                <tr>      

                    <?
                    $order = "SELECT * FROM request_details";
                    $result = mysql_query($order);
                    while ($row=mysql_fetch_array($result)){

                    echo ("<tr><td>$row[name]</td>");
                    echo ("<td>$row[telephone_number]</td>");
                    echo ("<td>$row[venue]</td>");
                    echo ("<td>$row[event_date]</td>");
                    echo ("<td>$row[guests]</td>");
                    echo ("<td>$row[cover_colour]</td>");
                    echo ("<td>$row[sash_colour]</td>");
                    echo ("<td>$row[price]</td>");
                    echo ("<td>$row[damage_deposit]</td>");
                    echo ("<td>$row[notes]</td>");      
                    echo ("<td><a href=\"edit_form.php?id=$row[id]\">View</a></td></tr>");
                    }
                    ?>
            </table>
        </td>
    </tr>
</table>

当我点击查看时,它会将我带到以下网址:

edit_form.php?id=1

例如

edit_form.php?id=19

此页面的代码(信息未显示在文本字段中):

<table border=1>
    <tr>
        <td>
            <table>

                <?
                $order = "SELECT * FROM request_details WHERE id='$id'";
                $result = mysql_query($order);
                $row = mysql_fetch_array($result,MYSQL_ASSOC);
                ?>

                <form method="post" action="edit_data.php">
                    <tr>
                    <input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
                    <tr>        
                        <td>Name</td>
                        <td>
                            <input type="text" name="name" size="20" value="<?php echo $row['name']; ?>">
                        </td>
                    </tr>
                    <tr>
                        <td>Email Address</td>
                        <td>
                            <input type="text" name="email_address" size="40" 
                                   value="<?php echo $row['email_address']; ?>">
                        </td>
                    </tr>
                    <tr>
                        <td align="right">
                            <input type="submit" name="submit value" value="Edit">
                        </td>
                    </tr>
                </form>
            </table>      
        </td>
    </tr>
</table>

【问题讨论】:

  • 你打开错误报告了吗?你有任何错误吗?您采取了哪些故障排除步骤来确定问题?
  • 我想你忘记了行索引名称周围的引号.. $row["name"] 而不是 $row[name]
  • 您的代码在使用它时特别容易受到攻击。你真的应该调查 PDO (php.net/manual/en/book.pdo.php) 和准备好的陈述。这就像您将贵重物品留在车内去上班时打开车窗一样。
  • 调试试试:var_dump($row);你得到什么结果?

标签: php html mysql


【解决方案1】:

这样做

   <input type="hidden" name="id" value="<?php echo $row['id'] ;?>" />

  <input type="text" name="name" size="20" value="<?php echo $row['name']; ?>" />

  <input type="text" name="email_address" size="40" value="<?php echo $row['email_address']; ?>" />

编辑;

很抱歉,您的代码是灾难性的并且一团糟。那里有很多错误,我无法全部修复。以任何方式将您的行更改为此行。

     echo "<td><a href=\"edit_form.php?id=$row['id']\">View</a></td></tr>"; 

并在查询此行之前添加要显示编辑页面的文件

  $id = $_GET['id'] ;

【讨论】:

  • @user2717967 那么问题不在这里,这就是您从数据库中回显值的方式。我猜您的问题出在查询中的$id 中。你有没有尝试回应它,看看是否有价值?
  • 我试图在 标记中回显并显示,但那里也没有乐趣,所以我认为这是我错过的相当简单的事情
  • 我说在您的查询之前尝试echo $id ; 看看是否有回声。
  • 那么你没有 $id ,看看你把这个 $di 带到哪里,你的问题是这个id。这就是为什么你的查询就像你说的WHERE id = nothing
  • 上一页的代码是 echo ("查看 "); id 定义为数据库中的列名
【解决方案2】:

你可以这样做:

<input type="text" name="email_address" size="40" value="<?=$row['email_address']?>">

【讨论】:

    【解决方案3】:

    将您的 php 代码更改为

    $row = mysql_fetch_array($result,MYSQL_ASSOC);

    还可以像下面这样更改 HTML 代码

        <input type="hidden" name="id" value="<?php echo $row['id'] ;?>" />
    

    【讨论】:

      【解决方案4】:

      您的代码不完整,它错过了行调用中的定义。它不知道 $row[name] 因为变量应该由引号定义。

      <input type="text" name="name" size="20" value="<? echo $row['name']; ?>">
      <input type="text" name="email_address" size="40" value="<? echo $row['email_address']; ?>">
      

      接下来,您引用了一个不需要的变量。变量根本不必被引用。你正确引用了值类型,双引号没有意义。

      顺便说一句,你的代码真的很乱。尝试使用适当的语法正确地放下它。 (别忘了;在变量后面)

      【讨论】:

        【解决方案5】:

        如果您的网址是 edit_form.php?id=19

        您需要编写如下查询:

        $order = "SELECT * FROM request_details WHERE id='$_GET[id]'";
        

        【讨论】:

          【解决方案6】:

          我对孔代码进行了更正,它有效

          <html>
          <head>
          <title>PAGE Edit</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>
          <body>
          <table>
            <tr>
              <td align="center">EDIT DATA</td>
            </tr>
            <tr>
              <td>
                <table border="1">
                <?php
                include"db.inc.php";//database connection
                $order = "SELECT * FROM data_employees";
                $result = mysql_query($order);
                while ($row=mysql_fetch_array($result)){
                // Print "<th>Name:</th> <td>".$data['user'] . "</td> "; 
                  echo ("<tr><td>".$row['name']."</td>");
                  echo ("<td>".$row['employees_number']."</td>");
                  echo ("<td>".$row['address']."</td>");
                  echo ("<td><a href=edit_form.php?id=".$row['employees_number'].">Edit</a></td></tr>"); 
                }
                ?>
                </table>
              </td>
             </tr>
          </table>
          </body>
          </html>
          

          第二部分:调用edit_form.php进行编辑

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
          "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <title>Form Edit Data</title>
          </head>
          
          <body>
          <table border=1>
            <tr>
              <td align=center>Form Edit Employees Data</td>
            </tr>
            <tr>
              <td>
                <table>
                <?php
                $id=$_GET['id']; 
          
                include "db.inc.php";//database connection
                $order = "SELECT * FROM data_employees 
          where employees_number='$id'";
                $result = mysql_query($order);
                $row = mysql_fetch_array($result);
                ?>
                <form method="post" action="edit_data.php">
                <input type="hidden" name="id" value="<?php echo "$row[employees_number]"?>">
                  <tr>        
                    <td>Name</td>
                    <td>
                      <input type="text" name="name" 
                  size="20" value="<?php echo "$row[name]"?>">
                    </td>
                  </tr>
                  <tr>
                    <td>Address</td>
                    <td>
                      <input type="text" name="address" size="40" 
                    value="<?php echo "$row[address]"?>">
                    </td>
                  </tr>
                  <tr>
                    <td align="right">
                      <input type="submit" 
                    name="submit value" value="Edit">
                    </td>
                  </tr>
                </form>
                </table>
              </td>
            </tr>
          </table>
          </body>
          </html>
          

          最后调用edit_Data.php来更新DATA TABLE

          <?php
          //edit_data.php
          $name=$_POST['name'];
          $address=$_POST['address'];
          $id=$_POST['id'];
          include "db.inc.php";
          $order = "UPDATE data_employees 
                    SET name='$name', 
                        address='$address' 
                    WHERE 
                    employees_number='$id'";
          mysql_query($order);
          header("location:edit.php");
          ?>
          

          我希望现在很清楚! :D

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-02-02
            • 1970-01-01
            • 2012-05-28
            • 2023-04-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多