0

私は php を使用してデータベースにいくつかの mod を作成しています。2 つの同一のテーブルがあり、1 つの行を最初のテーブルから 2 番目のテーブルに移動したいのですが、純粋な php と mysql を使用してそれを行うにはどうすればよいですか。

それは私のテーブルがどのように見えるかです

CREATE TABLE users (
 username varchar(30) primary key,
 password varchar(32),
 userid varchar(32),
 userlevel tinyint(1) unsigned not null,
 email varchar(50),
 timestamp int(11) unsigned not null
);

ここに私のphpコードがあります

function procMoveUser(){
          global $session, $database, $form;
          /* Username error checking */
          $subuser = $this->checkUsername("user");

          /* Errors exist, have user correct them */
          if($form->num_errors > 0){
             $_SESSION['value_array'] = $_POST;
             $_SESSION['error_array'] = $form->getErrorArray();
             header("Location: ".$session->referrer);
          }
          /* move the user */
         else{

      $q = "SELECT * FROM ".TBL_USERS." WHERE username = '$subuser'"; 
      $result = $database->query($q); 

      if($result && $result->num_rows == 1){
          while($array = $result->fetch_assoc() ){
              $second_query = "INSERT INTO".TBL_USERSDONT."VALUES ($array['user'], $array['password'], $array['userid'] , $array['userlevel'] , $array['email'] , $array['timestamp'])"; 
              $second_result = $mysqli->query($second_query);
              if($second_result){
                  // it worked!
                  $q = "DELETE FROM ".TBL_USERS." WHERE username = '$subuser'";
                  $database->query($q);
              }
        }
      }




  }
       }
4

2 に答える 2

1

まず、SELECT * FROM移動する行の最初のテーブル。次に、上記のように、最初のテーブルの値を使用して INSERT ステートメントを実行します。

$q = "SELECT * FROM ".TBL_USERS." WHERE username = '$username'"; 
$result = $mysqli->query($q); 

if($result && $result->num_rows == 1){
    while($array = $result->fetch_assoc() ){
        $second_query = "INSERT INTO second_table VALUES ($array['user'], $array['something'])"; 
        $second_result = $mysqli->query($second_query);
        if($second_result){
        // it worked!
        }
    }
 }
于 2012-06-19T18:05:18.987 に答える
0

多分これは役立つでしょう:既存のMySQLテーブルを新しいテーブルにコピーします

于 2012-06-19T18:12:12.243 に答える