表中的行数等于结果的平方

时间:2013-04-21 07:14:59

标签: php mysql

我需要一些关于PHP中表创建的帮助。在我的代码中,我的表格打印方式太多次了。出于某种原因,代码的输出是结果数量的计数是^ 2。所以,如果我在实际数据库中有4个结果,那么我在输出中有16个结果。我想在论坛上发帖之前做更多的研究,但我是php新手,不知道从哪里开始。

//Count the number of rows returned
$count = mysql_num_rows($result);
echo $count;
//Table header
echo "<div><table id=\"tableheader\" bgcolor=\"#4382b5\">\n";
echo "<tr>\n";
echo "<td>&nbsp;3-4 ID:</td>\n";
echo "<td>&nbsp;First Name:</td>\n";
echo "<td>&nbsp;Last Name:</td>\n";
echo "<td>&nbsp;HCA:</td>\n";
echo "<td>&nbsp;File:</td>\n";
echo "<tr>";
echo "</table></div>";
if ($count !== 0) {
            while($row = mysql_fetch_array($result)) {
                echo "<div class=\"addform\"><form method='get' action=\"update.php\">\n";
                echo "  <input type=\"text\" value=\"".$row['tfid']."\" name=\"column1\">\n";
                echo "  <input type=\"text\" name=\"column2\" value=\"".$row['fname']."\"/>\n";
                echo "  <input type=\"text\" name=\"column3\" value=\"".$row['lname']."\"/>\n";
                echo "  <input type=\"text\" name=\"column4\" value=\"".$row['hca']."\"/>\n";
                echo "  <input type=\"text\" name=\"column5\" value=\"".$row['file']."\"/>\n";
                echo "  <input type=\"image\" src=\"images/update.png\" alt=\"Update Row\" class=\"update\" title=\"Update Row\">\n";
                echo "<a href=\"delete.php?tfid=".$row['tfid']."\"><img title='Delete Row' alt=\"Delete\" class='del' src='images/delete.png'/></a></form></div>\n";

            }
        echo "</table><br />\n";
    } else {
        echo "<b><center>NO DATA</center></b>\n";
    }

1 个答案:

答案 0 :(得分:0)

根据您的最新评论:

SELECT staff.tfid, staff.lname, staff.fname, staff.hca, pic.file ". "FROM staff, pic

您正在使用2个表staffpic。但是你没有任何加入标准。你应该有staff.id=pic.id

之类的东西

这就是为什么你得到两个结果集的 笛卡儿积 ,即平方结果集。 4 staff表格乘以4 pic表格

您的查询应该是:

SELECT staff.tfid, staff.lname, staff.fname, staff.hca, pic.file ". " 
FROM staff, pic
where staff.id=pic.id

考虑到这两个表之间有id作为相关属性。