如何从一个表中提取数据并将其插入另一个表的列中?

时间:2011-01-25 19:03:51

标签: php mysql

标题有点具体,但最好的我可以在一行中解释。

我的问题基本上是,我在我的数据库中有一个表,我查询;

 <?php
include 'connect.php'; 

$query = mysql_query("SELECT * FROM mobs WHERE zone='Darnolth' ORDER BY lvl ") or die(mysql_error());;

echo "<table border='1' cellpadding='2' cellspacing='0' width=800 id='mob' class='tablesorter'><thead>";
echo "<tr> <th> </th> <th>Mob Name</th> <th>Level</th> <th>Health</th> <th>Drops</th> <th>Effects</th> <th>Zone</th></tr></thead><tbody>";

while($row = mysql_fetch_array( $query )) {


    echo "<tr><td>";
    echo $row['image'];
    echo "</td><td width=200>";
    echo $row['mobname'];
    echo "</td><td width=50>";
    echo $row['lvl'];
    echo "</td><td width=50>";
    echo $row['health'];
    echo "</td><td width=200>";   
    echo $row['drops'];
    echo "</td><td width=100>"; 
    echo $row['effects'];
    echo "</td><td width=75>"; 
    echo $row['zone'];
    echo "</td></tr>"; 
}

echo "</tbody></table>";

?>

现在这一切都很好,但是drop row需要从我的数据库中的items表中提取所有项目的图像

所以它需要在items表上调用从名称中删除的行中的图像与上面查询中的mob名称相同。

我尝试在其中添加另一个查询,但没有做任何事情,我无法想到其他任何事情。

感谢。

尝试使用INNER JOIN来修改我的代码;

 <?php
include 'connect.php'; 

$query =  mysql_query("SELECT mobs.image, mobs.mobname, mobs.lvl, mobs.health, mobs.drops, mobs.effects, mobs.zone, misc.droppedby FROM mobs JOIN misc ON mobs.drops = misc.droppedby") or die(mysql_error());;


echo "<table border='1' cellpadding='2' cellspacing='0' width=800 id='mob' class='tablesorter'><thead>";
echo "<tr> <th> </th> <th>Mob Name</th> <th>Level</th> <th>Health</th> <th>Drops</th> <th>Effects</th> <th>Zone</th></tr></thead><tbody>";
// keeps getting the next row until there are no more to get

while($row = mysql_fetch_array( $query )) {

    // Print out the contents of each row into a table
    echo "<tr><td>";
    echo $row['image'];
    echo "</td><td width=200>";
    echo $row['mobname'];
    echo "</td><td width=50>";
    echo $row['lvl'];
    echo "</td><td width=50>";
    echo $row['health'];
    echo "</td><td width=200>";   
    echo $row['drops'];
    echo "</td><td width=100>"; 
    echo $row['effects'];
    echo "</td><td width=75>"; 
    echo $row['zone'];
    echo "</td></tr>"; 
}

echo "</tbody></table>";

?>

但现在这只是导致我的小怪表加载每个小怪我的misc表中的项目数量,所以我有mob1 100次和mob2 100次等等,但它不会从misc表中拉出图像并将它们放在小怪表中的滴剂列中。

1 个答案:

答案 0 :(得分:0)

您需要做的事情称为JOIN。它允许您在单个SQL SELECT查询中从多个表中提取数据。

例如,要获得每本书的作者,您可以

SELECT * from 
book INNER JOIN author ON book.authorId = author.ID

有关加入的更多信息:http://www.w3schools.com/sql/sql_join.asp