SQL Query仅检索一行

时间:2012-10-13 20:55:55

标签: php sql database web

我有一个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>';

2 个答案:

答案 0 :(得分:3)

INNER JOIN将仅返回两个表中具有NOT NULL值的值。您可能正在使用NULL值加入内容。改为使用LEFT或RIGHT联接!

答案 1 :(得分:1)

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

问题仍然存在,你为什么要加入?你没有从PRICE表中收集任何数据,所以重点是什么 顺便说一句,数据中的哪个是ID?