0

目前我的搜索脚本有效,但它没有做我想做的事。目前它只返回一个搜索结果,即使一个搜索项目应该显示大约 20 个。我试图弄清楚如何让脚本返回那些应该显示的缺失结果。所以也许这里的专家可以提供帮助:)

include('data.php');
    //Database Connection
$con=@mysql_connect("$ip", "$user", "$pass")
            or die(mysql_error());

//Select Database
$dbcon=@mysql_select_db($db, $con)
            or die(mysql_error());


$search = $_POST['search'];

$sql = mysql_query("select guid, name, staffmember, dateposted, id, admin_note from $whitelist where guid like '%$search%' or name like '%$search%' or staffmember like '%$search%' or dateposted like '%$search%' or id like '%$search%' or admin_note like '%$search%'");


while ($row = mysql_fetch_array($sql)) {
    //Username
    $name = $row['name'];
    //GUID
    $guid = $row['guid'];
    //Staff Member Who Submitted
    $staff = $row['staffmember'];
    //ID
    $id = $row['id'];
    //Date Posted
    $date = $row['dateposted'];
    //Note From Admin
    $admin = $row['admin_note'];
    }
    ?>
    <html>
    <body>
    <table border="0" width="100%" cellpadding="0" cellspacing="0" id="product-table">
                <tr>
                    <!--<th class="table-header-check"><a id="toggle-all" ></a> </th>-->
                    <th class="table-header-repeat line-left minwidth-1"><a href="">ID</a>  </th>
                    <th class="table-header-repeat line-left minwidth-1"><a href="">GUID</a></th>
                    <th class="table-header-repeat line-left"><a href="">Username</a></th>
                    <th class="table-header-repeat line-left"><a href="">Admin Note</a></th>
                    <th class="table-header-repeat line-left"><a href="">Staff Member</a></th>
                    <th class="table-header-repeat line-left"><a href="">Date Posted</a></th>
                    <th class="table-header-options line-left"><a href="">Options</a></th>

                </tr>
                <tr>

                    <td><?php echo "$id"; ?></td>
                    <td><?php echo "$guid"; ?></td>
                    <td><?php echo "$name"; ?></td>
                    <td><?php echo "$admin"; ?></td>
                    <td><?php echo "$staff"; ?></td>
                    <td><?php echo "$date"; ?></td>
                    <td class="options-width">
                    <?php
                 echo '<a href="edit.php?id=' . $row['id'] . '" title="Edit" class="icon-1 info-tooltip"></a>';
                echo '<a href="delete.php?id=' . $row['id'] . '" title="Edit" class="icon-2 info-tooltip"></a>'; 
                ?>

                    </td>
                </tr>

                </table>
                </body>
                </html>
4

2 回答 2

1
while ($row = mysql_fetch_array($sql)) {
    //Username
    $name = $row['name'];
    //GUID
    $guid = $row['guid'];
    //Staff Member Who Submitted
    $staff = $row['staffmember'];
    //ID
    $id = $row['id'];
    //Date Posted
    $date = $row['dateposted'];
    //Note From Admin
    $admin = $row['admin_note'];
    }

你在这里做的是错误的。在循环的每次迭代中,变量都被重新定义,它们的旧值被删除并被新值覆盖。

于 2012-11-04T21:06:37.963 回答
0

您需要在“while ($row = mysql_fetch_array($sql))”循环中输出数据。就像现在一样,它获取的每个新行都会覆盖您的旧值。

在这种情况下,您的代码的结构必须像

 print out table header
 while ($row = mysql_fetch_array($sql)) {
    print out table row
 }
 print out what comes after table

IE

include('data.php');
//Database Connection
$con=@mysql_connect("$ip", "$user", "$pass")
        or die(mysql_error());

//Select Database
$dbcon=@mysql_select_db($db, $con)
        or die(mysql_error());


$search = $_POST['search'];

$sql = mysql_query("select guid, name, staffmember, dateposted, id, admin_note from $whitelist where guid like '%$search%' or name like '%$search%' or staffmember like '%$search%' or dateposted like '%$search%' or id like '%$search%' or admin_note like '%$search%'");?>


<html>
<body>
<table border="0" width="100%" cellpadding="0" cellspacing="0" id="product-table">
            <tr>
                <!--<th class="table-header-check"><a id="toggle-all" ></a> </th>-->
                <th class="table-header-repeat line-left minwidth-1"><a href="">ID</a>  </th>
                <th class="table-header-repeat line-left minwidth-1"><a href="">GUID</a></th>
                <th class="table-header-repeat line-left"><a href="">Username</a></th>
                <th class="table-header-repeat line-left"><a href="">Admin Note</a></th>
                <th class="table-header-repeat line-left"><a href="">Staff Member</a></th>
                <th class="table-header-repeat line-left"><a href="">Date Posted</a></th>
                <th class="table-header-options line-left"><a href="">Options</a></th>

            </tr>


<?php
while ($row = mysql_fetch_array($sql)) {
//Username
$name = $row['name'];
//GUID
$guid = $row['guid'];
//Staff Member Who Submitted
$staff = $row['staffmember'];
//ID
$id = $row['id'];
//Date Posted
$date = $row['dateposted'];
//Note From Admin
$admin = $row['admin_note'];
?>
            <tr>

                <td><?php echo "$id"; ?></td>
                <td><?php echo "$guid"; ?></td>
                <td><?php echo "$name"; ?></td>
                <td><?php echo "$admin"; ?></td>
                <td><?php echo "$staff"; ?></td>
                <td><?php echo "$date"; ?></td>
                <td class="options-width">
                <?php
 }

             echo '<a href="edit.php?id=' . $row['id'] . '" title="Edit" class="icon-1 info-tooltip"></a>';
            echo '<a href="delete.php?id=' . $row['id'] . '" title="Edit" class="icon-2 info-tooltip"></a>'; 
            ?>

                </td>
            </tr>

            </table>
            </body>
            </html>

(为了编写好的和安全的代码,应该改变一些东西,但是为了让你开始,这应该可以)

于 2012-11-04T21:08:02.353 回答