Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ช่วยทีครับ เรื่อง การ INSERT Record โดยใช้อีกตารางหนึ่ง



 

ช่วยทีครับ เรื่อง การ INSERT Record โดยใช้อีกตารางหนึ่ง

 



Topic : 131756



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



คือผมอยากให้รายชื่อทีมจากตาราง team ในช่อง team_t
ตาราง team


ไปแสดงในตาราง match
match


โดยให้แสดงใน team01 และ team02 โดยไม่ให้ซ้ำกัน


โดยจะออกมาเป็นแบบนี้

04

พอมีโค้ดที่สามารถทำแบบนี้ได้ไหมครับ

ขอบคุณครับ



Tag : PHP, MySQL, HTML









ประวัติการแก้ไข
2018-08-12 17:17:16
2018-08-12 17:17:40
2018-08-12 17:17:42
2018-08-12 17:18:02
2018-08-12 17:18:24
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-08-12 17:14:47 By : 2140630302645206 View : 2350 Reply : 13
 

 

No. 1



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


Code (SQL)
insert into match
select null, concat( tb1,name_t'-' ,tb2.name_t), tb1.idt, tb2.idt, 0, 0
from team as tb1
left join team as tb2 on tb1.idt<>tb2.idt


id_match ต้องเป็น auto_increment






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-12 18:12:24 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

[img][img][/img][/img]ขอบคุณสำหรับคำตอบครับผม

หลักจากที่ผมได้แก้โค้ดตามท่าน Chaidhanan โดยใส่โค้ดตามนี้
Code (PHP)
 $sql =  "INSERT INTO match
          SELECT null, concat( team.name_t'-' ,match.name_t), team.id_t, match.id_t, 0, 0
          FROM team as team
          left join team as match on team.id_t<>match.id_t";



โดยตามความที่เข้าใจว่า
tb1 คือ ตารางที่ 1 คือ team
tb2 คือ ตารางที่ 2 คือ match

id_match เป็น auto_increment เรียบร้อย

และ idt คือ id_t

ผมเข้าใจตามนี้ถูกต้องไหมครับ

โดยแก้แล้ว ไม่สามารถ insert ได้ครับ

โดย ERROR ตามภาพนี้ครับ

ss

ขอความกรุณาอีกรอบครับผม


ประวัติการแก้ไข
2018-08-12 22:29:15
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-12 22:27:21 By : 2140630302645206
 

 

No. 3



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


tb1 tb2 แทน ทีม ทั้งคู่ครับ
tb1 แทน home team
tb2 แทน away team

แต่เป็นการอ้างอิง จากตารางทีม เดียวกัน

ลองทดสอบว่าข้อมูล มาถูกต้องไหม ยังไม่ต้อง ใส่คำสั่ง insert
Code (SQL)
select null id, concat( tb1,name_t, '-' ,tb2.name_t) match_name, tb1.idt home, tb2.idt away, 0 score_home, 0 score_away
from team as tb1
left join team as tb2 on tb1.idt<>tb2.idt

เอาแค่นี้ ก่อน แล้วตรวจสอบข้อมูลว่าตรงไหม ส่วนคำสั่ง insert เดี๋ยวค่อยว่ากัน อีกที


ปล. โค๊ดที่จขกทเขียน คอมม่า หายไปตัว ใน ฟังก์ชั่น concat


ประวัติการแก้ไข
2018-08-13 12:55:23
2018-08-13 13:01:20
2018-08-13 13:02:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 12:54:32 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณสำหรับคำตอบครับ

ได้นำโค้ดที่ท่านแก้ไข้มา ไปทดลอง เกิด error ดังนี้ครับ

errorrrr

ไม่ทราบว่าผมเข้าใจตรงไหนผิดไปหรือปล่าวครับ

ขอความกรุณาอีกรอบครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 14:13:28 By : 2140630302645206
 


 

No. 5



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

วนลูปอาร์เรย์ แล้วเช็คค่ากับตัวเองโดยจับคู่กับตำแหน่งถัดไปครับ

ถามเพิ่มเติมหน่อยว่าต้องการแบบ เหย้า - เยือน หรือไม่
ถ้ามีแบบเหย้า-เยือน ก็ต้อง copy อาร์เรย์เป็น 2 ชุด

ต้องสลับ A-B กับ B-A
ตอนจะ INSERT จากคร้งเดียวก็เป็น 2 ครั้ง แค่เปลี่ยนตำแหน่งตอนสร้าง SQL เท่านั้น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 15:06:38 By : {Cyberman}
 


 

No. 6



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ไม่ต้องการแบบ เหย้า-เยือนครับ

ผมทำโปรเจ็คการแข่งขัน แบบแพ้คัดออกครับ โดยมีการจัดตาราง และ ป้อนผลการแข่งขัน

โดยผมอยากทำ ให้รายชื่อทีม ในตาราง team

01

ramdom โดยไม่ให้ซ้ำกัน แล้ว insert ข้อมูล เข้าไปที่ตาราง matchh

02

โดย insert name_t เข้าไป ใน ช่อง team01 และ team02

ซึ่งผมทำได้แค่ random รายชื่อ team ออกมา โดยใช้คำสั่ง
Code (SQL)
SELECT * FROM team ORDER BY RAND()"


แต่ผมไม่ทราบว่าต้องเขียนยังไง ให้ รายชื่อทีมที่ random ไป insert เข้าตาราง matchh ครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 15:42:57 By : 2140630302645206
 


 

No. 7



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : 2140630302645206 เมื่อวันที่ 2018-08-13 14:13:28
รายละเอียดของการตอบ ::
ตอบตรงนี้ก่อน tb1 คอมม่า idt เออเร่อร์ที่คอมม่า ต้องเป็น จุด ต้นฉบับผิดเอง



ผิดๆ แพ้คัดออก เอาใหม่
Code (SQL)
select null id, concat( tb1,name_t, '-' ,tb2.name_t) match_name, tb1.idt home, tb2.idt away, 0 score_home, 0 score_away
from team as tb1
left join team as tb2 on tb1.idt<>tb2.idt
where not exists( select * form match where team01=tb1.idt or team02=id1.idt)
and not exists( select * form match where team01=tb2.idt or team02=id2.idt)




ประวัติการแก้ไข
2018-08-13 16:10:14
2018-08-13 16:20:12
2018-08-13 16:21:46
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 16:09:43 By : Chaidhanan
 


 

No. 8



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณสำหรับคำตอบ

ได้ทำการแก้ไข โค้ดที่ท่านให้มา

Code (SQL)
select null id, concat( tb1.name_t, '-' ,tb2.name_t) match_name, tb1.id_t home, tb2.id_t away, 0 score_home, 0 score_away
from tt as tb1
left join tt as tb2 on tb1.id_t<>tb2.id_t
where not exists( select * FROM matchh where team01=tb1.id_t or team02=id1.id_t)
and not exists( select * FROM matchh where team01=tb2.id_t or team02=id2.id_t)


เกิด ERROR ตามนี้

e

#1054 - Unknown column 'id1.id_t' in 'where clause'

ซึ่งผมไม่เข้าใจที่มาของ id1, id2 ว่ามาจากตรงไหน หรือ คืออะไรครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 16:49:35 By : 2140630302645206
 


 

No. 9



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


แสดงว่า ไม่มี basic เรื่อง alias เลยใช่ไหมครับ น่าจะวิเคราะห์ จากเออเร่อร์ที่มันบอกมา แล้วน่าจะแก้เองได้แล้ว
ถ้าสังเกตุดีๆ ก็จะมองเห็นว่ามันเออเร่อร์ อะไร ถ้าคูณไม่คิดจะวิเคราะห์เองบ้าง อนาคตก็ไม่ไปไหนหรอกครับ
error ก็บอกอยู่แล้วว่า unknown column ก็แสดงว่ามันสกดผิด วิเคราะห์เอาหน่อยครับ
ถ้าคุณอ่านโค๊ดทั้งหมดและวิเคราะห์ดูคุณต้องรู้แล้วว่าควรจะแก้ยังไง นี่แสดงว่าไม่ได้วิเคราะห์โค๊ดทั้งหมด

บางทีคนตอบก็เบลอเป็นเหมือนกัน ก็ต้องช่วยตัวเองบ้างนะครับ

ปล. โค๊ดที่ให้ไปยังไม่สมบูรณ์ เพราะต้องผ่านกระบวนการ insert ก่อน ถึงจะตรวจสอบได้ .ให้ใช้ร่วม กับ main code คิวรี่มาพัก ก่อน แล้ววน ลูป insert เข้าไปที่ รายการ

ปล.อีกที เดิมว่าจะสอนไปที่ละ step แต่ไม่ยอมวิเคราะห์เองบ้าง เลยคิดว่าแค่นี้ดีว่า ทดลองเอาเองนะครับ


ประวัติการแก้ไข
2018-08-13 18:14:15
2018-08-13 18:15:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 17:55:21 By : Chaidhanan
 


 

No. 10



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอโทษครับ ผมไม่มีความรู้ เรื่อง alias เลยครับ รู้แค่ mysql เบื้องต้น เท่านั้น

ผมจะไปศึกษาเรื่อง alias เพิ่มเติม ครับผม

ขอบคุณที่ให้คำปรึกษาครับ ขอบพระคุณครับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-13 18:26:05 By : 2140630302645206
 


 

No. 11



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ถ้าเป็นแบบเก็บคะแนน จะประมาณนี้ แต่ถ้าแพ้คัดออกเดี๋ยวหาตัวอย่างอีกทีครับ

Code (PHP)
<?php
 $teams = array(
  'Team 1',
  'Team 2',
  'Team 3',
  'Team 4',
  'Team 5',
  'Team 6',
  'Team 7',
  'Team 8'
 );
  $team_logo[0] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-15-512.png';
 $team_logo[1] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-16-512.png';
 $team_logo[2] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-25-512.png';
 $team_logo[3] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-23-128.png';
 $team_logo[4] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-37-128.png';
 $team_logo[5] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-12-128.png';
 $team_logo[6] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-29-128.png';
 $team_logo[7] = 'https://cdn4.iconfinder.com/data/icons/pokemon-go/512/Pokemon_Go-01-128.png';
 ?>
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <!-- Bootstrap CSS -->
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
    <title>PHP ตารางการแข่งขัน</title>
  <style>
 .games-schedule{
  margin : auto;
  float : none;
 }
 .games-schedule .well {
  background-color: #fafbfc;
  border: 1px #e7e7e7 solid;
  border-top: 2px #1761a6 solid;
  border-radius: 0px;
  padding: 0 10px 0 10px;
 }
 .games-schedule .col-md-2 {
  padding: 5px;
 }
 .games-schedule-title {
  background-color: #1761a6;
  color: #ffffff;
  padding: 5px;
  margin-bottom: 10px;
 }
 .games-schedule-title h5 {
  font-size: 18px;
  text-align: center;
  margin: 3px 0 3px 0;
 }
 .games-schedule-items {
  padding: 5px;
  margin-bottom: 15px;
 }
 .last-item {
  margin-bottom: 0px;
 }
 .games-team {
  margin-bottom: 12px;
 }
 .games-team h4 {
  color: #59a1e8;
  text-align: center;
  margin-top: 20px;
  border: 1px #c8d8e7 dotted;
  padding: 5px;
  width: 100%;
 }
 .games-team img {
  border-bottom: 2px #6b9fd3 solid;
  margin-bottom: 3px;
 }
 .games-team span {
  color: #de6c10;
  font-size: 16px;
 }
 .games-dash {
  border: none;
  border-top: 1px #95b3d0 dotted;
 }
 .games-info p {
  margin: 0;
  padding: 0;
  color: #0a2948;
  line-height: 20px;
 }
 .games-schedule-footer {
  background-color: #1761a6;
  color: #ffffff;
  font-size: 13px;
  padding: 5px;
 }
 .games-schedule-footer p {
  margin: 0;
 }
  .schedule-day{
  border : 1px solid #ccc;
 }
 </style>
  </head>
  <body>
 <br/>
 <div class="container text-center">
  <h3>PHP ตารางการแข่งขัน</h3>
  <div class="row">
   <div class="col-md-12 games-schedule">
    <div class="well">
     <?php
      $count_of_teams = count($teams);
      //แบบแข่งต่อเนื่อง  2 วันพัก ถัดไปทีละทีม
      $c=1;
      for($count_match=0;$count_match<2;$count_match++){ //home/away
              for($i=1;$i<$count_of_teams;$i++){ //move teams
        echo '<div class="col-md-4 schedule-day">';
         echo '<div class="col-md-12 games-schedule-title">
            <div class="row">
             <div class="col-md-12">
              <h5>DAY '.$c++.' Games</h5>
             </div>
            </div>
           </div>';
         for($a=0;$a<$count_of_teams;$a++){ //all teams are playing
          $b = ($a+$i)%$count_of_teams;
          if($count_match == 0){
           $teamLeft = $teams[$a];
           $teamRight = $teams[$b];
           $teamLeftLogo = $team_logo[$a];
           $teamRightLogo = $team_logo[$b];
          }else{
           $teamLeft = $teams[$b];
           $teamRight = $teams[$a];
           $teamLeftLogo = $team_logo[$b];
           $teamRightLogo = $team_logo[$a];
          }
                    echo '<div class="games-schedule-items">
            <div class="row games-team">
             <div class="col-md-5 text-center">
              <img width="128" src="'. $teamLeftLogo .'" alt="'.$teamLeft.'">
              <span>'.$teamLeft.'</span> [Home]
             </div>
             <div class="col-md-2">
              <h4 class="img-circle">VS</h4>
             </div>
             <div class="col-md-5 text-center">
              <img width="128" src="'. $teamRightLogo .'" alt="'.$teamRight.'">
              <span>'.$teamRight.'</span> [Visitor]
             </div>
            </div>
           </div>';
         }
        echo '</div>';
       }
             }
     ?>
    </div>
   </div>
  </div>
 </div>
   <pre>
 <blockquote>
 <b>Reference</b>
 PHP generate football schedule
 https://stackoverflow.com/questions/25742569/php-generate-football-schedule
 https://bootsnipp.com/snippets/featured/games-schedule
 https://www.iconfinder.com/iconsets/pokemon-go/
 </blockquote>
 </pre>
  </body>
</html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-14 13:51:14 By : {Cyberman}
 


 

No. 12



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ถ้าแบบทัวนาเมนต์ก็ Random แล้ววนลูป INSERT ไปเลย

Code (PHP)
<?php
    $players = ["A","B","C","D","E","F","G","H","I","J","L","M","N","O","P","Q"];
    shuffle($players);
    $players = array_chunk($players, 2);

    foreach($players as $match => $player){
        echo "Match " . ($match+1) . " : " . $player[0] . " vs. " . $player[1] . "<br>";
    }
?>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-14 14:01:37 By : {Cyberman}
 


 

No. 13



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ขอบคุณมากๆครับผม

จะนำไปศึกษาแล้วต่อยอดดูนะครับผม

ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-08-15 00:46:53 By : 2140630302645206
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยทีครับ เรื่อง การ INSERT Record โดยใช้อีกตารางหนึ่ง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่