Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php mysql上用2个表显示数据_Php_Mysql_Jointable - Fatal编程技术网

在php mysql上用2个表显示数据

在php mysql上用2个表显示数据,php,mysql,jointable,Php,Mysql,Jointable,我在显示两个表中的数据时遇到问题 Table 1 (kegiatan): id_kgt (PK), nama_kgt,ket, tg_mulai, tg_akhir, nm_pengirim, indi01, indi02, indi03, indi04, indi05, indi06, indi07, indi08, indi09, indi010, Table 2 (pilihan): kdpilih (PK), nmpilih kdpilih contain number which

我在显示两个表中的数据时遇到问题

Table 1 (kegiatan): id_kgt (PK), nama_kgt,ket, tg_mulai, tg_akhir, nm_pengirim, indi01, indi02, indi03, indi04, indi05, indi06, indi07, indi08, indi09, indi010,

Table 2 (pilihan): kdpilih (PK), nmpilih

kdpilih contain number which linked with indi01 to indi010

nmpilih contain plain text, ex: kdpilih: 1 = nmpilih: car 
我已经创建了脚本,但问题是当有人从输入页面输入少于或多于3个字段(indi01、indi02、indi03)的数据时,它将不显示任何内容。有什么解决办法吗?我的联接表脚本是否错误?所以,我想显示所有的数据,尽管输入页面上的数据只有1、2、3等

这是我的脚本,任何帮助都会非常有用。谢谢

<?php
$sql = "
SELECT a.id_kgt
     , a.nama_kgt
     , a.ket
     , a.tg_mulai
     , a.tg_akhir
     , a.nm_pengirim
     , a.file
     , b.nmpilih AS indi01
     , c.nmpilih AS indi02
     , d.nmpilih as indi03 
  FROM kegiatan a 
  JOIN pilihan b 
    ON b.kdpilih = a.indi01 
  JOIN pilihan c 
    ON c.kdpilih = a.indi02 
  JOIN pilihan d 
    ON d.kdpilih = a.indi03 
 ORDER 
    BY a.id_kgt ASC
 ";
      $result = mysqli_query($conn, $sql);
      $no = 1;
      if (mysqli_num_rows($result) > 0)
      {
        while ($data = mysqli_fetch_array($result))
        {
          echo "<tr>
                  <td>".$data['id_kgt']."</a></td>
                  <td>".$data['nama_kgt']."</a></td>
                  <td>".$data['ket']."</td>
                  <td>".tglindo($data['tg_mulai'])."</td>
                  <td>".tglindo($data['tg_akhir'])."</td>
                  <td>".$data['indi01'].", ".$data['indi02'].", ".$data['indi03']."</td>
                  <td>".$data['nm_pengirim']."</td>
                  <td>
                    <a href='".$data['file']."'>Download</a>   
                    <a href='kegiatan_ubah.php?id_file=$data[id_kgt]'>Ubah</a>   
                    <a href='kegiatan_hapus.php?id_file=$data[id_kgt]'>Hapus</a>
                  </td>
                </tr>";
                $no++;
        }
      }
      else
        {
          echo "No data.";
        }

<代码> 如果要显示其他表上的数据不做连接,则可以考虑左联接。< /P> 干杯

已解决 我用这个魔法:

"SELECT a.id_kgt, a.nama_kgt, a.ket, a.tg_mulai, a.tg_akhir, a.nm_pengirim, a.file, 
      b.nmpilih as indi01, c.nmpilih as indi02, d.nmpilih as indi03, e.nmpilih as indi04, f.nmpilih as indi05, 
      g.nmpilih as indi06, h.nmpilih as indi07, i.nmpilih as indi08, j.nmpilih as indi09, k.nmpilih as indi010 
      FROM kegiatan a 
      LEFT JOIN pilihan b ON b.kdpilih = a.indi01 LEFT JOIN pilihan c ON c.kdpilih = a.indi02 
      LEFT JOIN pilihan d ON d.kdpilih = a.indi03 LEFT JOIN pilihan e ON e.kdpilih = a.indi04 
      LEFT JOIN pilihan f ON f.kdpilih = a.indi05 LEFT JOIN pilihan g ON g.kdpilih = a.indi06
      LEFT JOIN pilihan h ON h.kdpilih = a.indi07 LEFT JOIN pilihan i ON i.kdpilih = a.indi08 
      LEFT JOIN pilihan j ON j.kdpilih = a.indi09 LEFT JOIN pilihan k ON k.kdpilih = a.indi010 
      ORDER BY a.id_kgt ASC"

我在sql中看不到任何受用户输入影响的内容-即:没有where子句-那么这个问题在何处/如何表现出来?我不使用where,因为我想显示2个表中的所有数据,但事实上它只显示db中的3个字段:indi01、indi02、INDI03当我使用left join时,它在pilihan表上显示来自kdpilih的数字。先生,你能告诉我正确的问题吗?