Php 使用复选框从表中获取多行并将其添加到另一个表中,然后从上一个表中删除

Php 使用复选框从表中获取多行并将其添加到另一个表中,然后从上一个表中删除,php,mysql,checkbox,Php,Mysql,Checkbox,在我的管理员页面中,将显示希望注册到该网站的人员列表 请求被插入到myMembersNedReg表中。当用户被接受时,用户的行将移动到members表中 在从membersneedreg获取数据时,我在每行添加了一个复选框,并决定将$num变量作为其值,该值在每个循环中递增 我的问题是,系统如何确认选中了我的复选框,在提交时,所选数据行将从membersNedReg表移动到members表中 我们将非常感谢您的帮助。如果您对我的帖子有任何疑问或需要修改,请随时发表评论 <?php $r

在我的管理员页面中,将显示希望注册到该网站的人员列表

请求被插入到my
MembersNedReg
表中。当用户被接受时,用户的行将移动到
members
表中

在从
membersneedreg
获取数据时,我在每行添加了一个复选框,并决定将
$num
变量作为其值,该值在每个循环中递增

我的问题是,系统如何确认选中了我的复选框,在提交时,所选数据行将从
membersNedReg
表移动到
members
表中

我们将非常感谢您的帮助。如果您对我的帖子有任何疑问或需要修改,请随时发表评论

<?php


$result_set = mysql_query("SELECT * FROM membersneedreg");   
$num_messages = mysql_num_rows($result_set);    
// Create connection

echo "<table border=1 align='center'>";
echo "<tr><th>MemberID</th><td>FirstName</td><td>LastName</td><td>Date of birth</td><td>Email</td><td>Address</td><td>PostCode</td><td>UserName</td><td>Password</td><td>Annadale Relationship</td></tr> ";       


// Loop over all the posts and print them out
$num=0;
while( $row = mysql_fetch_assoc( $result_set ) ) {          
  $memberid1 = $row['MemberID']; 
  $fname1 = $row['FirstName'];                              
  $lastn1 = $row['LastName'];   
  $DOB1 = $row['Date_of_Birth']; 
  $Email1 = $row['Email'];
  $Address1 = $row['Address'];                              
  $Postcode1 = $row['PostCode'];   
  $UserName1 = $row['UserName']; 
  $Password1 = $row['Password'];
  $relationship1 = $row['Annadale_Relationship'];
  $num++;  //allows me to give each checkbox a different value.

  echo "<form action='confirm_mem.php'>";
  echo "<tr align='center'><th>$memberid1</th>";                   
  echo "<td>$fname1</td>";                    
  echo "<td>$lastn1</td>";
  echo "<td>$DOB1</td>";   
  echo "<td>$Email1</td>";    
  echo "<td>$Address1</td>";                    
  echo "<td>$Postcode1</td>";
  echo "<td>$UserName1</td>";
  echo "<td>$Password1</td>";   
  echo "<td>$relationship1</td>";
  echo "<td><input type='checkbox' name='member' value='$num'></td></tr>";                                     
 }
 echo "</table>";
 echo "<input type='submit' name='submit' value='Add Member'>";
 echo "</form>";

 ?> 

让我们首先将您的MySQL转换为MySQLi。我将在注释/***/中进行一些解释,然后继续讨论代码

如果你想听听我的建议,你应该创建2个表,而不是2个数据库。(根据您的解释,您将
membersneedreg
members
称为数据库)。

假设您的
membersneedreg
成员是表,它们都有相同的列

例如,您可以将其保存为form.php

<?php

/* ESTABLISH THE CONNECTION */

$con=mysqli_connect("YourHost","YourUsername","YourPassword","YourDatabase"); /* REPLACE THE NECESSARY HOST, USERNAME, PASSWORD, AND DATABASE */

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();
}

$result_set = mysqli_query($con,"SELECT * FROM membersneedreg");   
$num_messages = mysqli_num_rows($result_set);    

echo "<table border='1' align='center'>";
echo "<tr><th>MemberID</th><td>FirstName</td><td>LastName</td><td>Date of birth</td><td>Email</td><td>Address</td><td>PostCode</td><td>UserName</td><td>Password</td><td>Annadale Relationship</td></tr>";       

/* FETCH THE DATA BASED ON THE QUERY RESULT_GET */

$num=0; /* THIS WILL BE SET AS YOUR COUNTER */

while($row = mysqli_fetch_array($result_set)){       

  $memberid1 = $row['MemberID']; 
  $fname1 = $row['FirstName'];                              
  $lastn1 = $row['LastName'];   
  $DOB1 = $row['Date_of_Birth']; 
  $Email1 = $row['Email'];
  $Address1 = $row['Address'];                              
  $Postcode1 = $row['PostCode'];   
  $UserName1 = $row['UserName']; 
  $Password1 = $row['Password'];
  $relationship1 = $row['Annadale_Relationship'];

  $num++;  /* INCREMENT NUM */

  echo "<form action='confirm_mem.php' method='POST'>";
  echo "<tr align='center'><th>$memberid1</th>";                   
  echo "<td>$fname1</td>";                    
  echo "<td>$lastn1</td>";
  echo "<td>$DOB1</td>";   
  echo "<td>$Email1</td>";    
  echo "<td>$Address1</td>";                    
  echo "<td>$Postcode1</td>";
  echo "<td>$UserName1</td>";
  echo "<td>$Password1</td>";   
  echo "<td>$relationship1</td>";
  echo "<td><input type='checkbox' name='member[$num]' value='$memberid1'></td></tr>"; 

/* THIS IS IMPORTANT, YOU SHOULD PUT TO AN ARRAY THE VALUE OF THIS CHECKBOX, AND THE VALUE WILL BE BASED ON THE FETCH ARRAY. IN MY EXAMPLE, THE $memberid1 VARIABLE */
  }

  echo "</table>";
  echo "<input type='hidden' name='hiddencounter' value='$num'>"; /* THIS IS FOR THE COUNTING PURPOSES */
  echo "<input type='submit' name='submit' value='Add Member'>";
  echo "</form>";

?> 

不要使用mysql \*-它已弃用,请使用
PDO
MySQLi
我根据我的连接添加并更改了它,但不幸的是,我仍在恢复confirm_mem页面上的4-6个未定义索引和变量错误。注意:未定义索引:第14行调用堆栈#时间内存函数位置1 0.0106 258352{main}()..\confirm_mem.php:0(!)注意:未定义索引:C:\wamp\www\FinalProject\Webpages\confirm_mem.php中的成员在第15行调用堆栈上#时间内存函数位置10.0106 258352{main}()..\confirm_mem.php:0(!)注意:未定义变量:x在C:\wamp\www\FinalProject\Webpages\confirm_mem.php在第17行调用堆栈上#时间内存函数位置1 0.0106 258352{main}()..\confirm_mem.php:0(!)注意:未定义变量:x在C:\wamp\www\FinalProject\Webpages\confirm_mem.php第19行调用堆栈#时间内存函数位置1 0.0106 258352{main}()..\confirm_mem.php:0(!)注意:未定义的变量:C:\wamp\www\FinalProject\Webpages\confirm_mem.php中的x在第17行调用堆栈#时间内存函数位置1 0.0106 258352{main}()..\confirm_mem.php:0@akirk541用此for替换for循环(x元=0 ;$x@akirk541你可以试试我更新的答案,它是一个两个文件,第一个保存到form.php,第二个保存到confirm_mem.php
<html>
<body>

<?php

/* ESTABLISH THE CONNECTION */

$con=mysqli_connect("YourHost","YourUsername","YourPassword","YourDatabase"); /* REPLACE THE NECESSARY HOST, USERNAME, PASSWORD, AND DATABASE */

if(mysqli_connect_errno()){
echo "Error".mysqli_connect_error();
}

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

$counter=$_POST['hiddencounter'];
$member=$_POST['member'];
echo $counter." submitted checkboxes"; /* TO CHECK HOW MANY CHECKBOX HAS BEEN GENERATED */

for($x=0;$x<=$counter;$x++){

if(empty($member[$x])){ /* IF MEMBER IS EMPTY, DO NOTHING */

}

else {

/* GET THE DATA FROM MEMBERSNEEDREG TABLE */
$result=mysqli_query($con,"SELECT * FROM membersneedreg WHERE MemberID='$member[$x]'");
while($row=mysqli_fetch_array($result)){
$memberid1 = $row['MemberID']; 
$fname1 = $row['FirstName'];                              
$lastn1 = $row['LastName'];   
$DOB1 = $row['Date_of_Birth']; 
$Email1 = $row['Email'];
$Address1 = $row['Address'];                              
$Postcode1 = $row['PostCode'];   
$UserName1 = $row['UserName']; 
$Password1 = $row['Password'];
$relationship1 = $row['Annadale_Relationship'];
}

/* THEN INSERT THE FETCHED DATA TO MEMBERS TABLE */
mysqli_query($con,"INSERT INTO members (MemberID, FirstName, LastName, Email, Address, PostCode, UserName, Password, Annadale_Relationship)
VALUES ('$memberid1','$fname1','$lastn1','DOB1','Email1','$address1','$Postcode1','$UserName1','$Password1','$relationship1')");

/* THEN DELETE FROM membersneedreg THE INSERTED DATA */
mysqli_query($con,"DELETE FROM membersneedreg WHERE MemberID='$member[$x]'"); 

} /* END OF ELSE */

} /* END OF FOR LOOP */

} /* END OF ISSET SUBMIT */

else {
header("LOCATION:form.php"); /* REDIRECT TO form.php IF DIRECTED TO THIS PAGE */
}

?>

</body>
</html>