3

我有一个 php 网站,上面有一些代码,可以在用户定义一些搜索词后从数据库中提取,然后向他们展示一个包含所有信息的表格

问题是即使我从表中选择 *,我也只能取回第一行。

代码:

$result = mysql_query("SELECT trees.*     
FROM trees 
INNER JOIN price 
ON trees.ID=price.treeid  
");


$num_rows = mysql_num_rows($result);
if($num_rows == 0) {
echo "No rows retrieved";
} else {
echo $num_rows;
}

我的数据库中有 2 行:

Spruce  El Sorbeous Sprucious   Green   Green   Green   100     200
its a tree ma!  true    NULL    NULL    NULL

Mayday  el daymay   red green   white   10  4000000
GOING DOWN  true    Grey    true    false

当我在那里打印出 $num_rows 时,它只有一个。当我打印出下面的表格时,只有一行:

echo '<table border = 0 cellpadding=0 >';
echo '<tr>';
echo '<td><b><u>Name</b></u></td>
<td><b><u>Latin Name</b></u></td>
<td><b><u>Primary Color</b></u></td>
<td><b><u>Secondary Color</b></u></td>
<td><b><u>Fall Color</b></u></td>
<td><b><u>Trunk Color</b></u></td>';

echo '<td><b><u>Description</b></u></td>
<td><b><u>Height</b></u></td>
<td><b><u>Spread</b></u></td>
<td><b><u>Drought Resistant?</b></u></td>
<td><b><u>Flowering?</b></u></td>
<td><b><u>Fruit Producing?</b></u></td>';

echo '</tr>';

while ($row = mysql_fetch_assoc($result)) {
     echo '<tr>';
     echo '<td>';
     echo $row['name'];
     echo '</td>';
     echo '<td>';
     echo $row['latinname'];
     echo '</td>';
     echo '<td>';
     echo $row['primarycolor'];
     echo '</td>';
     echo '<td>';
     echo $row['secondarycolor'];
     echo '</td>';
     echo '<td>';
     echo $row['fallcolor'];
     echo '</td>';
     echo '<td>';
     echo $row['trunkcolor'];
     echo '</td>';
     echo '<td>';
     echo $row['description'];
     echo '</td>';
     echo '<td>';
     echo $row['height'];
     echo '</td>';
     echo '<td>';
     echo $row['spread'];
     echo '</td>';
     echo '<td>';
     echo $row['droughtresistant'];
     echo '</td>';
     echo '<td>';
     echo $row['flowering'];
     echo '</td>';
     echo '<td>';
     echo $row['fruitproducing'];
     echo '</td>';

     echo '</tr>';

}
echo '<table>';
4

2 回答 2

3

INNER JOIN 将仅返回两个表中具有 NOT NULL 值的值。您可能正在加入具有 NULL 值的东西。请改用 LEFT 或 RIGHT 连接!

于 2012-10-13T20:57:51.500 回答
1

由于 PRICE 表中没有数据示例,我猜测只有一行被连接。

The question remains, why are you doing that JOIN? You're not collecting any data from the PRICE table, so what's the point.
BTW, where in the data is the ID?

于 2012-10-13T21:01:05.890 回答