0

我在 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),但是在上面的代码中只返回姓氏为 Jones 的人的第一次出现。试图将它们全部归还,而不仅仅是一个。我知道我只是忽略了一些小而愚蠢的事情——现在做 php/mysql 已经 2 年了——以前从来没有做过搜索页面。任何帮助是极大的赞赏。

4

2 回答 2

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

代替

$row = mysql_fetch_assoc($result);
于 2013-08-31T00:11:01.390 回答
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
 }
于 2013-08-31T00:11:57.383 回答