Member 13887979 Ответов: 1

Ошибки с внутренним соединением


Я должен объединить три таблицы вместе, чтобы иметь возможность представить запрос, но я не уверен, как это сделать, я продолжаю получать ошибки и не уверен в причине этого.

PHP-код, который мне дали, таков :
<html>
<body>
<link rel="stylesheet" href="laporan.css">  
<?php
 $pendaftaran = $_POST["kod_pendaftaran"];
 $con = mysqli_connect("localhost","root","");
 if (!$con)
  die('SAMBUNGAN TDK BERJAYA'.mysql_connect_error());
  mysqli_select_db($con, "spak");
  print"<h3>SENARAI MAKLUMAT PENDAFTARAN </h3>";
  print"<h3> MAKLUMAT PENDAFTARAN: ".$pendaftaran."</h3>";
  print"<table border = '1'>";
  print"<tr>";
  print"<th>kod_pendaftaran</th>";
  print"<th>nama_pelajar</th>";
  print"<th>tingkatan</th>";
  print"<th>kelas</th>";
  print"<th>nama_kelab</th>";
  print"<th>guru_penasihat</th>";
  print"<th>tarikh_daftar</th>";
  print"</tr>";
  $sql = "select pendaftaran.kod_pendaftaran, maklumat_pelajar.nama_pelajar, maklumat_pelajar.tingkatan, maklumat_pelajar.kelas, maklumat_kelab.nama_kelab, maklumat_kelab.guru_penasihat, maklumat_kelab.tarikh_daftar
  from ((pendaftaran
  inner join maklumat_pelajar on pendaftaran.id_pelajar = maklumat_pelajar.id_pelajar)
  inner join maklumat_kelab on pendaftaran.kod_kelab = maklumat_kelab.kod_kelab)

 WHERE kod_kelab = "."'".$pendaftaran."'";


  $result = mysqli_query($con,$sql);
  while ($row = mysqli_fetch_array($result))
  {
  	echo' <tr> 
  	<td>'.$row["kod_pendaftaran"].'</td>
  	<td>'.$row["nama_pelajar"].'</td>
  	<td>'.$row['tingkatan'].'</td> 	
    <td>'.$row["kelas"].'</td> 
  	<td>'.$row["nama_kelab"].'</td>
  	<td>'.$row["guru_penasihat"].'</td>
  	<td>'.$row["tarikh_daftar"].'</td>
	     </tr>';
  }
  print"</table>";
  
 ?>
 </body>
 </html>


и HTML-страница :
<html>
<body>
<link rel="stylesheet" href="laporan.css">
<h3> SENARAI AHLI KELAB</h3>
<form action = "query3table1.php" method ="post">
	PILIH KELAB :
	<select id= "kod_pendaftaran" name="kod_pendaftaran">
	
      	<option value="K01">Kelab Pengguna</option>
      	<option value="K02">Kelab Kerjaya</option>
      	<option value="K03">Kelab Kesenian dan Kebudayaan</option>
      	<option value="K04">Kelab Pelancongan dan Fotografi</option>
      	<option value="K05">Kelab Tunas Bestari/ Keusahawanan</option>
      	<option value="K06">Kelab Pencegahan Jenayah</option>
      	<option value="K07">Kelab Pertanian</option>
        <option value="K08">Kelab Pusat Sumber</option>
      	<option value="K09">Kelab Koperatif Muda</option>
        <option value="K10">Kelab MUET</option>
      	<option value="K11">Kelab Debat</option>
      	
	</select>

	
	<input type ="submit" value="Cari" name="submit">
</form>
</body>
</html>


Что я уже пробовал:

Я пробовал переключать кодировку с теми, которые нашел в интернете, но это, похоже, не работает.

David_Wimbley

Без детализации того, что это за ошибка, никто действительно не сможет вам помочь, поскольку мы не можем запустить ваш код, так как у нас нет доступа к вашему компьютеру или вашим серверам.

Вы должны обновить свой вопрос с тем, что ваше сообщение об ошибке и, если это возможно, разместить свою схему БД с некоторыми образцами данных, чтобы было легко реплицировать ваши ошибки соединения.

Richard Deeming

Согласен, но это так. "должен[^]", нет "ничто[^]". :)

1 Ответов

Рейтинг:
9

Kornfeld Eliyahu Peter

select 
	pendaftaran.kod_pendaftaran, 
	maklumat_pelajar.nama_pelajar, 
	maklumat_pelajar.tingkatan, 
	maklumat_pelajar.kelas, 
	maklumat_kelab.nama_kelab, 
	maklumat_kelab.guru_penasihat, 
	maklumat_kelab.tarikh_daftar
from 
(
	(
		pendaftaran
			inner join maklumat_pelajar on pendaftaran.id_pelajar = maklumat_pelajar.id_pelajar
	)
			inner join maklumat_kelab on pendaftaran.kod_kelab = maklumat_kelab.kod_kelab
)
where kod_kelab = ''

Когда вы формируете свой SQL, вы можете видеть, что просто не следуете правильному синтаксису для SELECT-FROM-JOIN-WHERE...
Прочитать руководство: MySQL :: MySQL 8.0 справочное руководство :: 13.2.10.2 синтаксис соединения[^]