2015-05-29 7 views
0

Как соединить три таблицы, у меня есть 3 таблицы, которые являются buku, sedia и perpus, buku имеет атрибут idbuku, namapengarang, namabuku, penerbit, жанр и tahunterbit.perpus имеет атрибут idperpus, namaperpus и alamat.and Sedia имеет СТОК, idperpus атрибута, и idbuku , что я хочу спросить, я пытался внутренним присоединиться к 3 таблицы с синтаксисомкак внутреннее соединение 3 таблица

select * from buku inner join sedia where buku.idbuku =sedia.idbuku; 

это работает, но когда я пытаюсь

select * from buku inner join sedia where buku.idbuku =sedia.idbuku inner join perpus where sedia.idperpus = perpus.idperpus; 

код ошибки, он говорит предупреждение: mysql_fetch_array() ожидается параметр 1 является ресурсом, логическим данным по строке 64.

может кто-нибудь сказал мне, что мне делать?

его мой PHP код, который до сих пор не работает, как это должно быть

<?php 
       include "koneksi.php"; 

         $cari=$_POST["cari"]; 
         $rbut=$_POST["rbut"]; 

        if (isset($cari)||isset($rbut)){ 
         $sql = "select * from buku where $rbut like '%$cari%'inner join sedia on buku.IDbuku = sedia.IDbuku inner join perpus on sedia.IDperpus = perpus.IDperpus;"; 
         $result = mysql_query($sql); 
        } 
        elseif(!isset($cari)||!isset($rbut)){ 
         $cari=$_POST["cari"]; 
         $rbut=$_POST["rbut"]; 
         $sql = "select * from buku"; 
         $result = mysql_query($sql); 
        } 
        echo " 
         <table border='1'><tr><th>ID</th><th>Nama Pengarang</th><th>Nama Buku</th><th>Penerbit</th><th>Genre</th><th>Tahun Terbit</th></tr>"; 

        while($row=mysql_fetch_array($result)){ 
         echo " 
         <tr> 
          <td>$row[IDbuku]</td> 
          <td>$row[NamaPengarang]</td> 
          <td>$row[NamaBuku]</td> 
          <td>$row[Penerbit]</td> 
          <td>$row[Genre]</td> 
          <td>$row[TahunTerbit]</td> 
         </tr>"; 
        } 
        echo " 
         </table>"; 
       ?> 
+0

Посмотрите документацию mysql_fetch_array(). Пока вы на нем, обратите внимание, что с ним связаны очень большие предупреждения об устаревании. Используйте PDO или Mysqli и прочитайте об использовании. – Burki

+0

Запустите его в своем db, чтобы узнать, есть ли у вас какой-либо результат или нет. – sqluser

+0

Я попытался в db, он ничего не покажет, он говорит об ошибке – DovahVinn

ответ

0

Вашего where условие должно быть on:

select * 
from buku 
inner join sedia on buku.idbuku =sedia.idbuku 
inner join perpus on sedia.idperpus = perpus.idperpus; 

посмотреть documentation для получения дополнительной информации о синтаксисе соединения.

** UPDATE ** Ваш новый запрос неправильно:

$sql = "select * from buku inner join sedia on buku.IDbuku = sedia.IDbuku inner join perpus on sedia.IDperpus = perpus.IDperpus where $rbut like '%$cari%'"; 

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

+0

спасибо mate, он не даст никаких сообщений об ошибке снова^_ ^ – DovahVinn

Смежные вопросы