我正在尝试获取表的结果并将其插入另一个表中。结果是用户ID。这段代码应该有效,但事实并非如此。
$query1 = "SELECT id FROM users";
$select1 = $db->prepare($query1);
$select1->execute(array());
foreach($select as $index => $rs) {
$users = $rs['id'];
// the results are 1,2,3,4,5,6,7,8... (the user id's)
}
// Here below, I want to add the results into another table...
foreach ($users as $row){
$query2 = "INSERT INTO validateuser (userid) VALUES (".$row.")";
$select2 = $db->prepare($query2);
$select2->execute(array());
}
答案 0 :(得分:2)
这对我来说似乎过于复杂。为什么不让数据库做最好的数据库 - 处理数据,并在单个insert-select语句中执行此操作?
root
|-- time: timestamp (nullable = true)
|-- action: string (nullable = true)
修改:
强>
要回答评论中提出的问题,可以选择INSERT INTO validateuser (userid)
SELECT id FROM users
值作为文字:
'validated'
答案 1 :(得分:1)
当您使用= link_to qm_input_path('hour') do ...
<a class="navbar-brand" href="/qimen/hour/input"> ...
迭代第一个查询的结果时,可以使用render layout: 'input'
将= link_to qm_chart_path(@foo, @bar), class: 'btn btn-default pull-right next' do ...
<a class="btn btn-default pull-right next" href="/qimen/hour/chart/foo/bar"> ...
设置为结果的每一行的ID。
在循环结束时,render layout: guess_layout
将包含最后一行的id,因为它每次都被覆盖。它不可迭代(它是一个int),所以foreach($select as $index => $rs)
没有意义。
你可能打算做$users
。但是,如果您只是将它们全部插入,那么您可以在一个查询中执行此操作,就像其他答案所示。