从数据库中获取数据以显示在文本框中

时间:2017-09-20 02:50:24

标签: php html

人。我在从数据库中获取数据时遇到问题,以便在文本框中显示数据。它给了我一个错误,上面写着Undefined variable:test on line 22

以下是我的HTML代码段,其中包含错误

<tr>
    <td width="230">Item Name</td>
    <td width="10">:</td>
    <td width="294"><input id="item" name= "Item" type="text" class="resizedTextbox" value = "<?php echo $test['item'];?>" required></td>
</tr>

这是我的PHP代码片段。

include("config.php");

if (isset($_GET['item_id']))
    {
    $sql = "SELECT * FROM inventory WHERE item_id  =" .$_GET['item_id'];
    $query = mysqli_query($db, $sql);
    $test = mysqli_fetch_array($query);
    }

我相信我没有语法错误,所以我不确定导致问题的原因。提前谢谢。

4 个答案:

答案 0 :(得分:0)

首先,fetch_array不会为您提供当前尝试回显的关联数组。 ($ test ['item']),它会先将其编入索引。试试这个:

$row = mysqli_fetch_assoc($result);

循环然后使用像你之前尝试做的那样的数组索引

请阅读此处了解有关差异的更多信息: Mysqli fetch_assoc vs fetch_array

http://php.net/manual/en/mysqli-result.fetch-assoc.php

http://php.net/manual/en/mysqli-result.fetch-assoc.php

答案 1 :(得分:0)

在if条件下打印$ test并检查是否显示所有数据

答案 2 :(得分:0)

您必须循环查询结果

while ($test = mysqli_fetch_array($query))
{    
    echo "<tr>";
    foreach ($test as $key => $value) { ?>
        <tr>
<td width="230">Item Name</td>
<td width="10">:</td>
<td width="294"><input id="item" name= "Item" type="text" class="resizedTextbox" value = "<?php echo $value['item'];?>" required></td>
</tr>
   <?php  }
    echo "</tr>";
}

答案 3 :(得分:0)

请放弃使用mysqli,就像您使用它一样不安全。如果你学会了那样使用它,那么那个人告诉你这样的代码应该被踢。大多数人使用mysqli就像他们使用mysql一样,他们需要了解社区为何会引入改进版本。

如果你正在使用mysqli,那么在准备好的语句中使用它就可以通过自己编写安全漏洞来停止使用它。

要回答你的问题试试这个, PHP

include("config.php");

if (isset($_GET['item_id'])){
  $sql = "SELECT * FROM inventory WHERE item_id  =?";
  $query = $db->prepare($sql);
  $query -> bind_param("i", $_GET['item_id'],PDO::PARAM_INT);
  $query -> execute();
  $getRow = $query -> fetch(PDO::FETCH_ASSOC);
}

HTML

<tr>
 <td width="230">Item Name</td>
 <td width="10">:</td>
 <td width="294"><input id="item" name= "Item" type="text" class="resizedTextbox" value = "<?php echo $getRow['item'];?>" required></td>
</tr>

如果您创建了多个,则使用while循环循环获取数据。 PHP

include("config.php");

if (isset($_GET['item_id'])){
  $sql = "SELECT * FROM inventory WHERE item_id  =?";
  $query = $db->prepare($sql);
  $query -> bind_param("i", $_GET['item_id'],PDO::PARAM_INT);
  $query -> execute();  
}

HTML

<?php while($getRow = $query -> fetch(PDO::FETCH_ASSOC);){?>
<tr>
 <td width="230">Item Name</td>
 <td width="10">:</td>
 <td width="294"><input id="item" name= "Item" type="text" class="resizedTextbox" value = "<?php echo $getRow['item'];?>" required></td>
</tr>
<?php } ?>