我在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 - 从来没有做过搜索页面。非常感谢任何帮助。
答案 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
}