0

我在脚本中进行了双重搜索。当它搜索玩家装备时,它将获取玩家 UID 并带回该玩家的姓名。唯一的问题是可能会返回超过 1 个结果,并且它只会显示最后一个带有名称的 UID。

$ip = "localhost";
$user = "******";
$pass = "*******";
$db = "hivemind";
$ill1 = $_POST['search'];

//Database Connection
$con = @mysql_connect("$ip:3316", "$user", "$pass")
            or die(mysql_error());

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

$sql = mysql_query("select PlayerUID, Inventory, Backpack from character_data where Inventory like '%$ill1%'");

while ($row = mysql_fetch_array($sql)) {
    $puid = $row['PlayerUID'];
    $inv = $row['Inventory'];
    $back = $row['Backpack'];
    ?>
    <html>
    <body>
    <table>
    <tr>

                    <td><?php echo "$puid"; ?></td>
                    <td><?php echo "$inv"; ?></td>
                    <td><?php echo "$back"; ?></td>

    </tr>
    </table>
    </body>
    </html>
    <?php }?>

    <?php

//Database Connection
$con = @mysql_connect("$ip:3316", "$user", "$pass")
            or die(mysql_error());

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

$sql = mysql_query("select PlayerUID, PlayerName from player_data where PlayerUID like '%$puid%'");

while ($row = mysql_fetch_array($sql)) {

    $puid2 = $row['PlayerUID'];
    $plnm = $row['PlayerName'];
    ?>
    <html>
    <body>
    <table>
    <tr>    
                    <td><?php echo "$puid"; ?></td>
                    <td><?php echo "$plnm"; ?></td>


    </tr>
    </table>
    </body>
    </html>
     }
4

2 回答 2

1

它正在返回所有结果。您没有正确打印它们。

将 html,body,table 标签移到while循环外。

将循环更改为:

while ($row = mysql_fetch_array($sql)) {

    $puid2 = $row['PlayerUID'];
    $plnm = $row['PlayerName'];
    echo "<tr><td>".$puid."</td>";
    echo "<td>".$plnm."</td></tr>";
} 
于 2012-11-09T06:36:21.947 回答
0

循环打印下面的代码

<td><?php echo "$puid"; ?></td>
  <td><?php echo "$plnm"; ?></td>

你只打印一次,所以覆盖值。

于 2012-11-09T06:34:13.680 回答