将查询结果存储在PHP / MySql中的不同表中

时间:2012-02-12 16:50:11

标签: php mysql

我正在使用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++;
        }
    }
}

2 个答案:

答案 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++;
}

如上所述,但未经测试,但理论上应该有效。