我已经为我的网站制作了一个小成员,在我的数据库中查找名字或名字第二名。所有成员都以相同的方式插入,但我并不总是得到结果。如果找不到具有键入名称的成员,则会收到消息。接缝工作,但有时我得不到任何消息,或者如果有多个结果,我得到的不是全部。 这是我使用的代码。
<form id="tfnewsearch" method="POST" action="admin_search_member.php">
<input id="tfq" class="tftextinput4" name="q" size="21" maxlength="240" value="Mitglied suchen..." />
<input type="submit" name="startsuche" value=" " id="tfbutton4">
</form>
那是我的查询
if(isset($_POST['startsuche'])) {
$sql = "SELECT * FROM Mitglieder WHERE vorname LIKE '%".mysql_real_escape_string(trim($_POST['q']))."%' OR nachname LIKE '%".mysql_real_escape_string(trim($_POST['q']))."%'";
$result = mysql_query($sql) OR die("<pre>\n".$sql." </pre>\n".mysql_error());
$row = mysql_fetch_array($result);
}
if (mysql_num_rows($result) == 0) {
?>
<div id="body_box_tabs">
<div class="tabcontents">
<div id="view1">
<p style="color: #003137; font-weight: bold;">Das gesuchte Mitglied existiert nicht!</p>
<a href="./admin_mitglieder.php"><input class="button-link" type="submit" value="Zurück"/></a>
</div>
</div>
</div>
<?php
} else {
echo $_POST['q'];
?>
<div id="body_box_tabs">
<div class="tabcontents">
<div id="view1">
<?php
while($row = mysql_fetch_array($result)) {
echo "show me the found member";
}
}
?>
我希望有人可以帮助我。
答案 0 :(得分:1)
您基本上是在抓取然后丢弃查询结果的第一行。这将导致在没有行时显示“不存在”消息,当返回一行时不会导致输出,并且当找到n> 1行时将导致(n-1)输出。你永远不会以这种方式看到结果的第一行。
删除第一个$row = mysql_fetch_array($result);
,或更改循环:
do {
echo "show me the found member";
} while($row = mysql_fetch_array($result));
答案 1 :(得分:0)
在此代码块中:
<?php
while($row = mysql_fetch_array($result)) {
echo "show me the found member";
}
}
?>
这样做:
<?php
while($row = mysql_fetch_array($result)) {
echo $row['field_name'];
}
}
?>
应该这样做......