php - 是否可以为按钮分配动态变量;在 while 循环中从查询中获取的每一行都会发生变化吗?

标签 php html mysql while-loop

我有一个查询,它使用while循环为其找到的每一行生成一个表。然而,我的目标是让每个都有一个添加按钮,按下该按钮时会获取两个变量并INSERTS在另一个表中插入一个新行。我相信我的代码无法正常工作的原因是系统无法识别哪个添加按钮属于哪一行。我尝试将每行的 UserID 分配给按钮 id,但仍然无法插入。 (它不会产生任何错误)。

关于如何实现我的目标有什么建议吗?

HTML + PHP:

<div class="RightBody">
  <form name="search_form" method="post" action="" >
    <input type="text" name="search_box" value="" placeholder="Search for skills or a user." />
    <input type="submit" name="search" value="Search" />
  </form>
  <table width="100%" cellpadding="5" cellspacing="5" >
        <p><strong>Search Results:</strong></p>
        <tr>
          <td></td>
          <td><strong>First Name</strong></td>
          <td><strong>Last Name</strong></td>
          <td><strong>Job Role</strong></td>
          <td><strong>Skill(s)</strong></td>
        </tr>
        <?php
    if(isset($_POST['search']))
    {
      if(@mysqli_num_rows($search_query)!=0){
          do{ 
            if(isset($_POST['adduser'])){
              $AddUserID = $search_rs['UserID'];
              $AddProjectID = $Project;

              $sql = $con->query("INSERT INTO userprojects (UserID, ProjectID) VALUES  ('$AddUserID', '$AddProjectID')") or die(mysqli_error($con)); 
            }?>
            <tr>
              <td>
                <input type="submit" name="adduser" value="Add"  id="<?php echo htmlspecialchars($search_rs['UserID']); ?>"/>
              </td>
              <td><?php echo $search_rs['Fname']; ?></td>
              <td><?php echo $search_rs['Lname']; ?></td>
              <td><?php echo $search_rs['JobRole']; ?></td>
              <td><?php echo $search_rs['Description']; ?></td>
            </tr>
            <?php   
          } 
          while ($search_rs=mysqli_fetch_assoc($search_query));
      } 
      else 
      {
        echo "No results found";
      }
    }?>
        </table>
</div>

PHP:

<?php 
$value = isset($_POST['search_box']) ? $_POST['search_box'] : '';

$search_sql = "SELECT * FROM User INNER JOIN UserSkills ON User.UserId = UserSkills.UserId JOIN Skills ON UserSkills.SkillId = Skills.SkillId WHERE Description LIKE '%".$value."%' OR FName LIKE '%".$value."%' OR LName LIKE '%".$value."%' OR JobRole LIKE '%".$value."%' GROUP BY Description" or die(mysqli_error($con));

$search_query = mysqli_query($con, $search_sql);
if(mysqli_num_rows($search_query) !=0) {
  $search_rs = mysqli_fetch_assoc($search_query);
}

最佳答案

您需要指定您的action <form> 中的属性.

此外,htmlspecialchars(value) will return a string, not output it ,所以不要使用:

<?php htmlspecialchars($search_rs['UserID']);

你需要使用

<?php echo htmlspecialchars($search_rs['UserID']);

关于php - 是否可以为按钮分配动态变量;在 while 循环中从查询中获取的每一行都会发生变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35086730/

相关文章:

php - 连接到 Joomla 数据库以进行自定义更新功能时遇到问题

php - 显示运行总计和先前的值

php - Doctrine 不创建自动 UUID

php - 取消设置空数组元素

html - 将图像左对齐放在固定的导航栏上

MySQL 选择日期范围内每个日期不存在相关行的行

php - 使用查询字符串对 php 文件进行 Ajax 查询会导致 404

jquery - 不要在页面刷新时在向导中显示隐藏的 div?

javascript - CSS 如何在不使用 jquery 的情况下在滚动后修复元素位置

php - Opencart 管理员端的空白页