2012-02-12 14 views
1

私は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++; 
     } 
    } 
} 

答えて

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

上記のような何かを、それがテストされていません理論的にはうまくいくはずです。

+0

こんにちは。私は実際にチーム名を増やすための同様のコードを持っています。しかし、私はクエリから必要な結果が複数得られたときには問題があるようです。 – Programmer

関連する問題