簡體   English   中英

將一張表復制到另一張具有不同列數的表

[英]Copy one table to another with different colum count

由於我距離php專家還很遠,這讓我感到震驚,而且我似乎無法為此編寫腳本。

讓我們看看我是否可以盡可能清楚地解釋這一點。

可以說我有table1和table2

Table1 = (teamid, name, round1pos, round1score, round2pos, round2score)

Table2 = (id, tournamentid, teamid, name, round1pos, round1score, round2pos, round2score...till round10pos/round10score)

當從表1復制到表2時,我想在其前面添加2個字段。 (ID和錦標賽ID)

我面臨的問題是Table1每次都有不同數量的roundxpos / roundxscore。

基本上,我想做的就是在比賽結束后刪除表格。 但是將其中的數據復制到另一個表中以存檔結果。 但是每個錦標賽可以擁有不同的回合大小。

我希望有人能理解我正在努力實現的目標。

您應該創建第三個表,從現有表中刪除roundX列,並使用其ID對其進行引用。

rounds: team_id, tournament_id, no, pos, score

您應該對表進行規范化,但與此同時...。我假設主要問題是處理代碼中roundxpos和roundxscore列的變量數量。

希望這可以幫助:

  • 獲取此查詢的結果:從表1的SHOW COLUMNS字段喜歡'round%pos'
  • 獲取此查詢的結果:從表1的SHOW COLUMNS字段喜歡'round%score'
  • 通過遍歷字段名稱來創建table2插入

     //example, assuming results are fetched into an associative array $query = "INSERT INTO table2 (tournamentid, teamid, name)"; foreach($roundpos_fields as $f){ $query .= "," . $f['Field']; } foreach($roundscore_fields as $f){ $query .= "," . $f['Field']; } $query .= "( SELECT $tournamentid, '' teamid, name"; foreach($roundpos_fields as $f){ $query .= "," . $f['Field']; } foreach($roundscore_fields as $f){ $query .= "," . $f['Field']; } $query .= ")"; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM