Php 如何将当前项的id传递给请求表

Php 如何将当前项的id传递给请求表,php,mysql,database,Php,Mysql,Database,我有一个应用程序,用户可以向管理员发送请求编辑,现在的问题是如何将请求资产的id从user_asset表存储到请求表,以便我可以将其显示到管理员页面,并显示资产的全部详细信息 当用户点击请求编辑时,他会得到一个表单,表单上有可编辑的字段,其中填充了当前信息,但是我如何存储此资产的id,以便我可以使用两个表中的信息将其提取到管理员表中(用户资源,请求) 我有用户_资产表 和请求表 id reason assetid user_id 这就是我到目前为止所做的 if(isset($_POST

我有一个应用程序,用户可以向管理员发送请求编辑,现在的问题是如何将请求资产的id从user_asset表存储到请求表,以便我可以将其显示到管理员页面,并显示资产的全部详细信息

当用户点击请求编辑时,他会得到一个表单,表单上有可编辑的字段,其中填充了当前信息,但是我如何存储此资产的id,以便我可以使用两个表中的信息将其提取到管理员表中(用户资源,请求)

我有用户_资产表

和请求表

id
reason
assetid
user_id
这就是我到目前为止所做的

    if(isset($_POST['submit'])){

    // get all values from input with no special charactere

   $code = mysqli_real_escape_string($conn, $_POST['code']);

   $asset_id =  mysqli_real_escape_string($conn, $_GET['id']); 
   $reason =  mysqli_real_escape_string($conn, $_POST['reason']);

    if (!$error) {


      if (!$error) {
         // execute the sql insert 
            if(mysqli_query($conn, "INSERT INTO `requests`(id,reason,assetid, user_id) 
                 VALUES( null, '" . $reason . "', '". $asset_id ."','" .$_SESSION['user_id'] . "')")) {
              // if the insert result was true (OK)
              $success_message = "req was successfully added ! ";
           } else {
              // if the insert result was false (KO)
              $error_message = "Error in data...Please try again later!";
           }
        }
   }


}

else{
   if(isset($_GET['idedit']) ){
       $result = mysqli_query($conn, "SELECT * from user_asset WHERE asset_id=".$_GET['idedit']);
       $project = mysqli_fetch_array($result);
   }

}

   ?>
这是我的表格

            <form method="post" action="req_ade.php" id="adding_new_assets">


                                    <div class="control-group">
                                       <label  for="basicinput">الکود : </label>
                                       <div class="controls">
                                          <input type="number" id="basicinput" value="<?php echo $project['code']; ?>" placeholder="الكود" name="code" class="span8">
                                       </div>
                                    </div>

                                    <div class="control-group">
                                       <label  for="basicinput">التفاصيل : </label>
                                       <div class="controls">
                                          <input type="text" id="basicinput" value="<?php echo $project['title']; ?>" placeholder="التفاصيل" name="title" class="span8">
                                       </div>
                                    </div>

                                    <div>
                             <label style="color:black">السبب</label>
                             <textarea rows="8" cols="8" name="reason" class="form-control" placeholder="اذكر سبب التعديل ..." ></textarea>

                            </div>

                                    <div class="control-group">
                                       <div class="controls">
                                          <button type="submit" name="submit" class="btn">طلب تعديل</button>
                                       </div>
                                    </div>
                                 </form>


注意:第28行的D:\wamp64\www\Caprabia test\req_ade.php中的未定义索引:id

$\u GET数组中没有“id”。因此,$asset_id变量将为空,且空字符串不是有效的整数。您应该在查询中添加(int):

mysqli_query($conn, "INSERT INTO `requests`(id,reason,assetid, user_id) 
             VALUES( null, '" . $reason . "', '". (int)$asset_id ."','" .$_SESSION['user_id'] . "')")
或者最好在使用之前检查$\u GET数组。像这样:

If(isset($_GET['id'])) 
{
     $asset_id =  mysqli_real_escape_string($conn, $_GET['id']);
}
else 
{
     ...
}

谢谢你的建议

在尝试了很多建议并使用代码后,我找到了解决方案

if(isset($_POST['submit'])){

   // get all values from input with no special charactere

  $code = mysqli_real_escape_string($conn, $_POST['code']);

  $asset_id =  mysqli_real_escape_string($conn, $_POST['asset_id']); 
  $reason =  mysqli_real_escape_string($conn, $_POST['reason']);

   if (!$error) {


     if (!$error) {
        // execute the sql insert 
           if(mysqli_query($conn, "INSERT INTO `requests1`(id,reason,assetid, user_id) 
                VALUES( null, '" . $reason . "', '". $asset_id ."','" .$_SESSION['user_id'] . "')")) {
             // if the insert result was true (OK)
             $success_message = "req was successfully added ! ";
          } else {
             // if the insert result was false (KO)
             $error_message = "Error in data...Please try again later!";
          }
       }
  }


}

else{
   if(isset($_GET['idedit']) ){
       $result = mysqli_query($conn, "SELECT * from user_asset WHERE asset_id=".$_GET['idedit']);
       $project = mysqli_fetch_array($result);
   }

}
这是我以隐藏类型发布资产id的表单

  <form method="post" action="req_ade1.php" id="adding_new_assets">


                                    <div class="control-group">
                                       <label  for="basicinput">الکود : </label>
                                       <div class="controls">
                                       <input type="hidden" value="<?php echo $project['asset_id'];?>" name="asset_id" />
                                       <input type="number" id="basicinput" value="<?php echo $project['code']; ?>" placeholder="الكود" name="code" class="span8">
                                       </div>
                                    </div>

                                    <div class="control-group">
                                       <label  for="basicinput">التفاصيل : </label>
                                       <div class="controls">
                                          <input type="text" id="basicinput" value="<?php echo $project['title']; ?>" placeholder="التفاصيل" name="title" class="span8">
                                       </div>
                                    </div>

                                    <div>
                             <label style="color:black">السبب</label>
                             <textarea rows="8" cols="8" name="reason" class="form-control" placeholder="اذكر سبب التعديل ..." ></textarea>

                            </div>

                                    <div class="control-group">
                                       <div class="controls">
                                          <button type="submit" name="submit" class="btn">طلب تعديل</button>
                                       </div>
                                    </div>
                                 </form>


الکود : 

请从SQL中删除单引号,因为它在数据库中必须是整数,然后重试:value(null、“$reason.”、“$asset\u id.”、“$”会话['user\u id']。”)“”@suhaspandit-删除单引号将打开SQL注入查询,但不会修复任何问题。查询失败的原因是您没有检查值是否已设置,也没有使用预处理语句。
if(isset($_POST['submit'])){

   // get all values from input with no special charactere

  $code = mysqli_real_escape_string($conn, $_POST['code']);

  $asset_id =  mysqli_real_escape_string($conn, $_POST['asset_id']); 
  $reason =  mysqli_real_escape_string($conn, $_POST['reason']);

   if (!$error) {


     if (!$error) {
        // execute the sql insert 
           if(mysqli_query($conn, "INSERT INTO `requests1`(id,reason,assetid, user_id) 
                VALUES( null, '" . $reason . "', '". $asset_id ."','" .$_SESSION['user_id'] . "')")) {
             // if the insert result was true (OK)
             $success_message = "req was successfully added ! ";
          } else {
             // if the insert result was false (KO)
             $error_message = "Error in data...Please try again later!";
          }
       }
  }


}

else{
   if(isset($_GET['idedit']) ){
       $result = mysqli_query($conn, "SELECT * from user_asset WHERE asset_id=".$_GET['idedit']);
       $project = mysqli_fetch_array($result);
   }

}
  <form method="post" action="req_ade1.php" id="adding_new_assets">


                                    <div class="control-group">
                                       <label  for="basicinput">الکود : </label>
                                       <div class="controls">
                                       <input type="hidden" value="<?php echo $project['asset_id'];?>" name="asset_id" />
                                       <input type="number" id="basicinput" value="<?php echo $project['code']; ?>" placeholder="الكود" name="code" class="span8">
                                       </div>
                                    </div>

                                    <div class="control-group">
                                       <label  for="basicinput">التفاصيل : </label>
                                       <div class="controls">
                                          <input type="text" id="basicinput" value="<?php echo $project['title']; ?>" placeholder="التفاصيل" name="title" class="span8">
                                       </div>
                                    </div>

                                    <div>
                             <label style="color:black">السبب</label>
                             <textarea rows="8" cols="8" name="reason" class="form-control" placeholder="اذكر سبب التعديل ..." ></textarea>

                            </div>

                                    <div class="control-group">
                                       <div class="controls">
                                          <button type="submit" name="submit" class="btn">طلب تعديل</button>
                                       </div>
                                    </div>
                                 </form>