【问题标题】:Load data from MySQL database to HTML textboxes将数据从 MySQL 数据库加载到 HTML 文本框
【发布时间】:2016-10-20 23:58:22
【问题描述】:

我还在学习,谁能帮助我,我的代码有什么问题? 当您单击“加载”按钮时,我需要加载程序将搜索在下拉列表中选择的数据库 ID,它们会带上名称 .. 等并将其显示在文本框中。 对不起,我的英语。

<?php

        $servername = "localhost";
        $username = "estgv15592";
        $password = "estgv155922016";
        $dbname = "estgv15592";
        $conn = new mysqli($servername, $username, $password, $dbname);

        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        } 


           if(isset($_POST["loadbtn"]))
        {

            $id = (integer) $_POST["id"];

            $query = "SELECT NOME, MORADA, PRECO FROM FICHA_DE_OBRA WHERE ID_FICHAOBRA = '$id' ";
            $result = mysqli_query($conn, $query);
            $details = mysql_fetch_array($result);

            $nome = $details["NOME"];
            $morada = $details["MORADA"];
            $preco = $details["PRECO"];
        }

        $sql = "SELECT * FROM FICHA_DE_OBRA";

        $result = mysqli_query($conn, $sql);

         echo '<form id="form" method="post">';
            echo "<select name ='id'>";
            echo "<option value=''>Selecione Número ficha Obra</option>";

            while($row = mysqli_fetch_array($result))

              {
              echo "<option value='" . $row['ID_FICHAOBRA'] . "'>" . $row['ID_FICHAOBRA'] . "</option>";
              }
              echo "</select>";

            $conn->close();
            ?> 


          <input type="submit" value="Load" name="loadbtn">
          <table width="300" border="0">
          <tr>
          <td>Name</td>
          <td><input type="text" name="upName" style="text-align:right" value="<?php echo $nome;?>"/></td>
        </tr>
         <tr>
          <td>Cost</td>
          <td><input type="text" name="upCost" style="text-align:right" value="<?php echo $morada;?>" /></td>
        </tr>
        <tr>
          <td>Active</td>
          <td><input type="text" name="upActive" style="text-align:right" value="<?php echo $preco;?>" /></td>
        </tr>
    </table>
</div>
<br/>

</form>

【问题讨论】:

  • 欢迎来到 StackOverflow。请澄清您的问题:最后一个短语很长且难以理解。
  • 我不清楚问题是什么。

标签: php mysql html forms textbox


【解决方案1】:

您没有使用正确的 php 标签:(例如&lt;?php echo $preco;?&gt;):

<tr>
  <td>Name</td>
  <td><input type="text" name="upName" style="text-align:right" value="<?php echo $nome; ?>"/></td>
</tr>
<tr>
  <td>Cost</td>
  <td><input type="text" name="upCost" style="text-align:right" value="<?php echo $morada; ?>" /></td>
</tr>
<tr>
  <td>Active</td>
  <td><input type="text" name="upActive" style="text-align:right" value="<?php echo $preco; ?>" /></td>
</tr>

使用mysqli_querymysqli_fetch_array 函数并注意mysqli_query 中的第一个参数应该是您出错的连接对象:

$result = mysqli_query($conn, $query);    // first PHP block
$result = mysqli_query($conn, $sql);      // second PHP block

$details = mysqli_fetch_array($result);   // first PHP block
$row = mysqli_fetch_array($result)        // second PHP block

然后将下面的行移动到您的第一个 PHP 块的顶部,否则 $conn 将在您的第一个 PHP 块中未定义:

$servername = "localhost";
$username = "estgv15592";
$password = "your_password";
$dbname = "estgv15592";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

【讨论】:

  • 谢谢,但我做了更改,但不起作用。
【解决方案2】:

问题来自于您使用 mysqli 连接到数据库的连接,但您在调用查询时使用 mysql

这是代码

<?php
    $servername = "localhost";
    $username = "estgv15592";
    $password = "********";
    $dbname = "estgv15592";
    $conn = mysql_connect($servername, $username, $password, $dbname);
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    } 

    if(isset($_POST["loadbtn"]))
    {  
        $id = intval($_POST["id"]);

        $query = "SELECT NOME, MORADA, PRECO FROM FICHA_DE_OBRA WHERE  ID_FICHAOBRA = '$id' ";
        $result = mysql_query($query, $conn);
        $details = mysql_fetch_array($result);

        $nome = $details["NOME"];
        $morada = $details["MORADA"];
        $preco = $details["PRECO"];
     }
?>


<?php
    $sql = "SELECT * FROM FICHA_DE_OBRA";
    $result = $conn->query($sql);


    echo '<form id="form" method="post">';
    echo "<select name ='id'>";
    echo "<option value=''>Selecione Número ficha Obra</option>";

    while($row = mysqli_fetch_array($result))
    {
        echo "<option value='" . $row['ID_FICHAOBRA'] . "'>" . $row['ID_FICHAOBRA'] . "</option>";
    }
    echo "</select>";


    $conn->close();
?> 

<input type="submit" value="Load" name="loadbtn">
    <table width="300" border="0">
      <tr>
        <td>Name</td>
        <td><input type="text" name="upName" style="text-align:right" value="<? echo $nome; ?>" /></td>
      </tr>
      <tr>
        <td>Cost</td>
        <td><input type="text" name="upCost" style="text-align:right" value="<? echo $morada; ?>" /></td>
      </tr>
      <tr>
        <td>Active</td>
        <td><input type="text" name="upActive" style="text-align:right" value="<? echo $preco; ?>" /></td>
      </tr>
    </table>
   </div>
   <br/>
  </form>

  </body>
  </html>

</div>

您用来获取数据的这种方法不安全。我建议你用mysqli学习pdo或prepared statement

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
  • 1970-01-01
相关资源
最近更新 更多