从mysql检索以填充表单时遇到问题

uujelgoq  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(260)

我在从mysql数据库获取结果并将其转换为流行表单时遇到问题。基本上,我正在制作一个项目数据库,玩家可以在其中提交游戏中的项目细节,并查看数据库以获取每个项目的信息。我有一切工作,以增加项目的数据库和查看数据库。现在我正在尝试编写一个编辑项目页面。我基本上重用了additem页面中的表单,因此它显示的是相同的表单。在edititem页面的顶部,我有php代码从url中提取项目编号,因为项目编号是唯一的。所以我使用一个prepared语句来提取条目号,然后尝试从数据库中检索其余的信息,然后将每个信息设置为一个变量。我的代码有问题,但找不到任何错误。我输入了一些头调用调试把信息在网址栏…但头甚至没有被调用在某些地点,我没有得到任何错误。
在表单中,我使用了

<input name="itemname" type="text" value="<?php $edit_itemname?>">

文本框中没有显示任何内容。我对php还比较陌生,调试起来似乎比我用过的其他语言要困难得多..任何关于调试的帮助或建议都将不胜感激。我把我的php代码贴在下面,如果你们看到任何错误…我不应该有这么简单的问题!我把头发拔出来了哈哈。
谢谢你们!

<?php
require 'dbh.php';
if (!isset($_GET['itemnumber'])) {
  header("Location: itemdb.php");
  exit();
}else{

  $sql = "SELECT * FROM itemdb WHERE id = ?";
  $stmt = mysqli_stmt_init($conn);
  if (!mysqli_stmt_prepare($stmt, $sql)) {
    header("Location: edititem.php?error=sqlerror");
    exit();
  }else{
    $getid = $_GET['itemnumber'];
    mysqli_stmt_bind_param($stmt, "i", $getid);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);

    //Make sure an item is selected
    if ($result == 0) {
      $message = "You must select an item to edit!";
      header("Location: edititem.php?Noresults");
      exit();
    }else{
      while ($row = mysqli_fetch_assoc($stmt)) {
        $edit_itemname = $row['name'];
        $edit_itemkeywords = $row['type'];
        $edit_itemego = $row['ego'];
        $edit_itemweight = $row['weight'];
        $edit_itemacordmg = $row['acordmg'];
        $edit_itemtags = $row['tags'];
        $edit_itemworn = $row['worn'];
        $edit_itemaffects = $row['affects'];
        $edit_itemloads = $row['loads'];
        $edit_itemarea = $row['area'];
        $edit_itemcomments = $row['comments'];
          header("Location: edititem.php?testing");
      }
    }
  }

  }

 ?>
pgx2nnw8

pgx2nnw81#

获取 $edit_itemname 输入您应该使用的输出 <?= 不是 <?php . 说 <?php 将运行代码,所以基本上这只是一行变量。您没有告诉它打印变量中的值。
如果你的整个线条看起来像: <input name="itemname" type="text" value="<?= $edit_itemname?>"> 这应该给你你想要的。这个 <?= 相当于说 echo $edit_itemname; 如果你不喜欢用 <?= 你也可以说 <input name="itemname" type="text" value="<?php echo $edit_itemname; ?>">

kqhtkvqz

kqhtkvqz2#

您的代码应该更改为更可读的形式,您应该添加一个输出-我不推荐使用 <?= -你需要选择如何处理你的行-也许 <input> , <table> -或者别的什么?

<?php
require 'dbh.php';
if (!isset($_GET['itemnumber'])) {
   header("Location: itemdb.php");
   exit();
} // no else needed -> exit()

$sql = "SELECT * FROM itemdb WHERE id = ?";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
   header("Location: edititem.php?error=sqlerror");
   exit();
} // no else needed -> exit()

$getid = $_GET['itemnumber'];
mysqli_stmt_bind_param($stmt, "i", $getid);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

//Make sure an item is selected
if ($result == 0) {
   $message = "You must select an item to edit!";
   header("Location: edititem.php?Noresults");
   exit();
} // no else needed -> exit()

while ($row = mysqli_fetch_assoc($stmt)) {
  $edit_itemname = $row['name'];
  $edit_itemkeywords = $row['type'];
  $edit_itemego = $row['ego'];
  $edit_itemweight = $row['weight'];
  $edit_itemacordmg = $row['acordmg'];
  $edit_itemtags = $row['tags'];
  $edit_itemworn = $row['worn'];
  $edit_itemaffects = $row['affects'];
  $edit_itemloads = $row['loads'];
  $edit_itemarea = $row['area'];
  $edit_itemcomments = $row['comments'];
  // does not make sense here: header("Location: edititem.php?testing");
  // show your data (need to edited):
  echo "Name: " + $edit_itemname + "<br/>";
  echo "Area: " + $edit_itemarea + "<br/>";
  echo "Comment: " + $edit_itemcomments + "<br/>";
  // end of current row
  echo "<hr><br/>"
}
?>

相关问题