<?php
$db = mysql_connect('localhost', 'root', '') or
die ('Unable to connect. Check your connection parameters.');
mysql_select_db('my_db', $db) or die(mysql_error($db));
$query = 'SELECT
second, count(*) FROM tb_one GROUP BY second';
$result = mysql_query($query, $db) or die(mysql_error($db));
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $value) {
$queryy = 'INSERT INTO tb_two (name) VALUES ("' . $value . '")';
mysql_query($queryy, $db) or die(mysql_error($db));
}
}
?>
在此脚本中,第一个查询用于选择和计算重复值(这很有效),但在第二个查询中,我想将所选数据插入到另一个包含两列的表中,第一列用于其名称,第二列用于它的重复次数......如果insert语句中有一列,它运行良好并添加值。但是我想要两个列 - 一个用于名称,一个用于计算重复数量。谢谢先生......我已经尝试了很多天..
答案 0 :(得分:4)
你可以在MySQL中完成所有这些:
INSERT INTO tb_two(name, count)
SELECT second, count(*)
FROM tb_one
GROUP BY second;
尽管如此,在其他新闻the mysql_ functions have been deprecated中。您应该使用PDO Library。或者至少是MySQL Improved Library。
答案 1 :(得分:0)
通过对重复列进行别名来简化您的生活,以便您可以更轻松地解决问题。 方法如下:
替换此
$query = 'SELECT second, count(*) FROM tb_one GROUP BY second';
由此:
$query = 'SELECT second, count(*) as duplicates FROM tb_one GROUP BY second';
您现在有“重复”作为列名称。然后你可以使用它,例如:
while ($row = mysql_fetch_assoc($result)) {
foreach ($row as $r) {
$queryy = "INSERT INTO tb_two SET name='".$r['second']."', duplicates='".$r['duplicates']."'";
mysql_query($queryy, $db) or die(mysql_error($db));
}
}
答案 2 :(得分:0)
试试这个,抱歉,如果它有语法问题,我在记事本中做了。
while ($row = mysql_fetch_assoc($result))
{
$query = "INSERT INTO tb_two (column1, column2) VALUES ('" . $row[0] . "', '" . $row[1] . "')";
mysql_query($query, $db) or die(mysql_error($db));
}