0

現在、私の検索スクリプトは機能していますが、私がやりたいことをしていません。現時点では、検索されたアイテムに対して約 20 の検索結果が表示されるはずですが、1 つの検索結果しか返されません。表示されるべき不足している結果をスクリプトが返すようにする方法を見つけようとしています。だから多分ここの専門家が助けることができます:)

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

すなわち

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 に答える