将mysql数据库中的数据加载到html文本框中

yqhsw0fo  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(424)

我正在尝试从页面中的数据库表加载数据。
我在下面的报告是一个示范性的例子,来解释我想如何实现它。。。实际上,我们讨论的是数据库的100个字段和1000个字段,并传递表的行代码。。。

<?php
$servername = "localhost";
$username = "progettocantiere";
$password = "";
$dbname = "my_progettocantiere";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$idCantiere = $_GET['idCantiere'];

$sql1 = "SELECT * FROM Cantiere WHERE idCantiere = '$idCantiere'";

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

    $details = mysqli_fetch_array($result);

    $savedNomeCantiere = $details["nomeCantiere"];
    $savedCodiceCommessa = $details["codiceCommessa"];
    $savedIndirizzoCantiere = $details["indirizzoCantiere"];

var_dump($details);

$result1 = $conn->query($sql1);

echo($nomeCantiere);

?>

<html>
<head>
</head>
<body>

        <table width="300" border="0">
          <tr>
            <td>Name</td>
            <td><input type="text" name="savedNomeCantiere" style="text-align:right" value="<?php echo $savedNomeCantiere; ?>" /></td>
          </tr>
          <tr>
            <td>Cost</td>
            <td><input type="text" name="savedCodiceCommessa" style="text-align:right" value="<?php echo $savedCodiceCommessa; ?>" /></td>
          </tr>
           <tr>
            <td>Cost</td>
            <td><input type="text" name="savedIndirizzoCantiere" style="text-align:right" value="<?php echo $savedIndirizzoCantiere; ?>" /></td>
          </tr>

        </table>

<br/>

</body>
</html>

我尝试过这种上传方式,在文本框的“value”中添加“echo”,但它不起作用。
此行用于通过页面重定向派生“id”。

$idCantiere = $_GET['idCantiere'];

如果我想试试 var_dump($details) 它返回空值

vjhs03f7

vjhs03f71#

其中一个问题是你通过了 $conn 以及 $sql1 顺序不对。 $result = mysqli_query($sql1, $conn); 应该是 $result = mysqli_query($conn, $sql1); 如果我想尝试var\u转储($details),它将返回null
这正是你需要检查的原因 $result 在使用之前。 mysqli_query 返回一个 object 如果成功了或者 false 如果失败了-http://php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-returnvalues。
你不需要在这里花哨,但你至少应该做一个精神检查。

...
$sql1 = "SELECT * FROM Cantiere WHERE idCantiere = '$idCantiere'";
$result = mysqli_query($sql1, $conn);

if ($result !== false) {
    $details = mysqli_fetch_array($result);
    ...

另外,我必须指出 "SELECT * FROM Cantiere WHERE idCantiere = '$idCantiere'"; 因为你无法控制 $idCantiere . 请查阅sql注入以及如何避免它。

iklwldmw

iklwldmw2#

你的代码应该是这样的

<?php
$servername = "localhost";
$username = "progettocantiere";
$password = "";
$dbname = "my_progettocantiere";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$idCantiere = $_GET['idCantiere'];

$sql1 = "SELECT * FROM Cantiere WHERE idCantiere = '{$idCantiere'}";

    $result = $conn->query($sql1);

    $details = $result->fetch_array();

    $savedNomeCantiere = $details["nomeCantiere"];
    $savedCodiceCommessa = $details["codiceCommessa"];
    $savedIndirizzoCantiere = $details["indirizzoCantiere"];

var_dump($details);

$result1 = $conn->query($sql1);

echo($nomeCantiere);

?>

<html>
<head>
</head>
<body>

        <table width="300" border="0">
        <tr>
            <td>Name</td>
            <td><input type="text" name="savedNomeCantiere" style="text-align:right" value="<?php echo $savedNomeCantiere; ?>" /></td>
        </tr>
        <tr>
            <td>Cost</td>
            <td><input type="text" name="savedCodiceCommessa" style="text-align:right" value="<?php echo $savedCodiceCommessa; ?>" /></td>
        </tr>
        <tr>
            <td>Cost</td>
            <td><input type="text" name="savedIndirizzoCantiere" style="text-align:right" value="<?php echo $savedIndirizzoCantiere; ?>" /></td>
        </tr>

        </table>

<br/>

</body>
</html>

相关问题