MySQL并非所有结果都显示出来

时间:2015-05-13 13:35:50

标签: php mysql

我已经为我的网站制作了一个小成员,在我的数据库中查找名字或名字第二名。所有成员都以相同的方式插入,但我并不总是得到结果。如果找不到具有键入名称的成员,则会收到消息。接缝工作,但有时我得不到任何消息,或者如果有多个结果,我得到的不是全部。 这是我使用的代码。

<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";
    }
} 
?>

我希望有人可以帮助我。

2 个答案:

答案 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'];
    }
} 
?> 

应该这样做......