我正在使用PHP / MySql,我正在尝试根据他们拥有的技能将用户组合成对。我有一个现有的用户表和一个现有的团队表。
例如,我执行了一个返回6个成员的查询,这些成员需要配对成一个团队。
SELECT * FROM users WHERE skill = 'Office'
用户
ID /名称/技能
1 /鲍勃/办公
2 /泰德/办公
3 /添/办公
4 /比尔/办公
5 /肖恩/办公
6 /加布/办公室
然后必须将这些结果配对,预期输出应为:
队
名称/会员
OFFICE1 /鲍勃
OFFICE1 /泰德
Office2 /蒂姆
Office2 /比尔
Office3 /肖恩
Office3 /加布
一旦有2名成员被安排在一个团队中,团队名称应该增加1。
非常感谢任何帮助谢谢。
编辑:我试过了:
$results = mysql_query("SELECT * FROM users WHERE skill = 'Office'");
$numrows = mysql_num_rows($results); $name ="";
if($numrows!=0) {
while($row = mysql_fetch_assoc($results)) {
$name = $row['userName'];
}
}
//For incrementing the team name
$namectr=0;
for($ctr=0;$ctr<$results_num;$ctr++) {
if($ctr%2==0) {
$query = mysql_query("INSERT INTO teams VALUES ('Office$namectr','$name')");
$ctr++; if($ctr%2==1) {
$query = mysql_query("INSERT INTO teams VALUES (Office$namectr','$name')");
$namectr++;
}
}
}
答案 0 :(得分:1)
为什么不试试:
$result = mysql_query("SELECT * FROM users WHERE users.skill = 'office'");
$count = 0;
$sqlcount = 0;
$offcount = 1;
while ($source = mysql_fetch_array($result)) {
if ($count < 1) {
$office = $source['skill'] . $offcount;
$name = $source['name'];
$result[$sqlcount] = mysql_query("INSERT INTO teams ('name', 'member') VALUES ('$office', '$name')");
$sqlcount++;
} else if ($count >= 1) {
$offcount++;
$count = 0;
$office = $source['skill'] . $offcount;
$name = $source['name'];
$result[$sqlcount] = mysql_query("INSERT INTO teams ('name', 'member') VALUES ('$office', '$name')");
$sqlcount++;
} else {
echo "ERROR" . mysql_error();
}
}//end while
$sqlcount = 0;
while ($result[$sqlcount] != "") {
if ($source = $result) {
} else {
echo "ERROR! " . mysql_error();
}
}//end while
答案 1 :(得分:0)
您无法进行数据库查询,然后执行以下操作:
$count=0;
$team=1;
$teams = array();
foreach($result as $output){
if($count % 2 == 0){
// if even number, reset count and increment position
$count=0;
$team++;
}
$teams[] = $output['skill']." ".$team." - ".$output['member'];
$count++;
}
如上所述,但未经测试,但理论上应该有效。