如何从查询中获取结果并将结果插入到其他表中?

时间:2017-03-02 11:57:26

标签: php mysql mysqli

我确实在数据库中查询了我需要的结果,然后将其存储在变量中。然后我将该变量传递给INSERT INTO语句但由于某种原因我的代码不起作用。这是我的代码/

$query = "SELECT * from animals where old= 1 AND user_id=".$_SESSION['user_id'];
$result = mysqli_query(mysqli_connect("","","", ""), $query);


while ($row = mysqli_fetch_array($result))
{
    $variable[] = $row['number'];
}

//现在我将$ variable传递给INSERT INTO语句

if(isset($_POST['submit_d']))
{    
    foreach($variable as $var)
    {
        $query="INSERT INTO selectedanimals(number) VALUES ({$var},2)";
        mysqli_query($con, $query) or die (mysql_error());
    }
?>
<script>
    alert("Animal added.");
    self.location="chooseAnimals.php";
</script>
<?php
    }
?>

1 个答案:

答案 0 :(得分:1)

您可以在一个查询中将INSERT INTO selectedanimals (number) SELECT number FROM animals WHERE old = 1 AND user_id = some_id 用于此目的:

$query = "INSERT INTO selectedanimals (number) ";
$query.= "SELECT number FROM animals WHERE old = 1 AND user_id = ".$_SESSION['user_id'];
mysqli_query($con, $query) or die (mysql_error());

PHP代码:

// wordtoken_wordchunk table
Schema::create('wordtoken_wordchunk', function(Blueprint $table) {
        $table->integer('wordtoken_id')->unsigned();
        $table->integer('wordchunk_id')->unsigned();

        $table->foreign('wordtoken_id')->references('id')->on('word_tokens')->onDelete('cascade');
        $table->foreign('wordchunk_id')->references('id')->on('wordchunks')->onDelete('cascade');

        $table->primary(['wordtoken_id', 'wordchunk_id']);
    });

// wordchunks table
Schema::create('wordchunks', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();
        $table->string('text');
    });

// wordtokens table
Schema::create('word_tokens', function (Blueprint $table) {
        $table->increments('id');
        $table->string('text');
});