php mysql只返回第一条记录

时间:2013-08-31 00:09:32

标签: php mysql

我在switch语句中有以下代码,因为查询可能会因屏幕名称(1个字),全名(2个字......可能是3个)或“爆炸”的电子邮件地址而异3个字(我以后再把它放在一起,没什么大不了的)。但是,无法在以下代码中找到问题:

$query = "SELECT * FROM personal WHERE FirstName='$searchName' OR LastName='$searchName' OR Email='$searchName' OR displayName='$searchName'";
$result = mysql_query($query) or die(mysql_error());

echo "<center><table border='1' width='70%'>";
if (mysql_num_rows($result)) {
    $row = mysql_fetch_assoc($result);
    $myBuddy = $row['FirstName'].
    " ".$row['LastName'];
    $picName = $row['FirstName'].$row['LastName'].$row['RecNum'];

    if (file_exists('../members/'.$picName.
        '/profile.jpg')) {
        $picLine = "<img src = '../members/".$picName.
        "/profile.jpg' alt='profile' height='100' width='100' />";
    }

    echo "<tr>";
    echo "<td style='text-align:center'>".$picLine.
    "</td>";
    echo "<td style='text-align:center; color:red'>".$myBuddy.
    "</td>";
    echo "<td style='text-align:center'><input type='button' value='Add Buddy'></td>";
}

echo "</table>";
break;

问题是,我的MySql数据库中有几个人使用相同的姓氏(琼斯),但是在上面的代码中只返回姓氏为Jones的人的第一次出现。试图将它们全部归还,而不仅仅是一个。我知道我只是在俯视一些小小的东西。愚蠢 - 现在已经做了2年的php / mysql - 从来没有做过搜索页面。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

while ($row = mysql_fetch_assoc($result)) { 
   //...
   //use $row
}

而不是

$row = mysql_fetch_assoc($result);

答案 1 :(得分:1)

您也循环了结果,如下例所示:

echo "<center><table border='1' width='70%'>";
if (mysql_num_rows($result) )
{
    while($row = mysql_fetch_assoc($result)) {
        $myBuddy = $row['FirstName'] . " " . $row['LastName'];
        $picName=$row['FirstName'].$row['LastName'].$row['RecNum'];

        if (file_exists('../members/' . $picName . '/profile.jpg'))
        {
            $picLine = "<img src = '../members/" . $picName . 
                       "/profile.jpg' alt='profile' height='100' width='100' />";
        }

        echo "<tr>";
        echo "<td style='text-align:center'>" . $picLine . "</td>";
        echo "<td style='text-align:center; color:red'>" . $myBuddy . "</td>";
        echo "<td style='text-align:center'><input type='button' value='Add Buddy'></td>";
    }

    echo "</table>";
    break;
}

上面,我使用了一个while循环。

while($row = mysql_fetch_assoc($result)) {
   // code
 }