2014-09-25 37 views
0

我对编程PHP并不擅长,但仍然从中学习。
这是我的问题,我需要显示来自两个不同表的行的结果,研究过的东西并尝试过,但都失败了。用两张表显示多行

希望有人可以提供一些建议,我的代码行。

$query = "SELECT tblparent.*, tblchild.* FROM tblparent, tblchild* FROM tblparent"; 
$num_results = $result->num_rows; 
$result = $mysqli->query($query); 
if($num_results){ 
     echo "<center><table border='1' id='members'>"; 
       echo "<tr>"; 
         echo "<th>Parent ID</th>"; 
         echo "<th>Parent Firstname</th>"; 
         echo "<th>Parent Lastname</th>"; 
         echo "<th>Parent Middlename</th>"; 
         echo "<th>Child ID</th>"; 
         echo "<th>Child Firstname</th>"; 
         echo "<th>Child Middlename</th>"; 
         echo "<th>Child Lastname</th>"; 
         echo "<th>Action</th>"; 
       echo "</tr>"; 
     while($row = $result->fetch_assoc()){ 
       extract($row); 
       echo "<tr>"; 
         echo "<td>{$Parent_ID}</td>"; 
         echo "<td>{$PFname}</td>"; 
         echo "<td>{$PLname}</td>"; 
         echo "<td>{$PMname}</td>"; 
         echo "<td>{$Child_ID}</td>"; 
         echo "<td>{$CFname}</td>"; 
         echo "<td>{$CMname}</td>"; 
         echo "<td>{$CLname}</td>"; 
         echo "<td>"; 
           echo "<a href='#' onclick='delete_mem({$Parent_ID});'>Delete</a>"; 
         echo "</td>"; 
       echo "</tr>"; 
     } 
     echo "</table>"; 
} 
else{ 
     echo "No records found."; 
} 
$result->free(); 
$mysqli->close(); 
+0

只是为了确认,你试图从2个不同的数据库表中获取数据,并将它们放入一个HTML表格中? – 2014-09-26 00:03:16

回答

1

我看到了两个错误:

  1. 要满足语句的正确顺序,$result应该 前$num_results分配新建分配FY。
  2. 它似乎在您的SQL查询中有错误。

您需要调整下面的代码,我假设tblparent都有一个id和tblchild有关系tblparent ID为PARENT_ID

$query = "SELECT tblparent.*, tblchild.* FROM tblparent, tblchild WHERE tblparent.id = tblchild.parent_id"; 
$result = $mysqli->query($query); 
$num_results = $result->num_rows; 
+0

btw,我可以问另一个问题吗? 是否有可能如果我从tblParent中删除Parent_ID,tblChild中与它有关系的记录也会被删除?或者我需要删除它们两个.. – 2014-09-26 00:53:59

+0

如果这是正确的答案,请upvote和/或接受它作为解决方案。到你的问题搜索[cascade](http://www.mysqltutorial.org/mysql-on-delete-cascade/)。 – CSchulz 2014-09-26 08:38:01