2012-11-09 137 views
0

我有一個雙重搜索發生在腳本內。當它搜索一個玩家裝備時,它會帶上玩家UID並帶回該玩家的名字。唯一的問題是可能會有超過1個結果返回,它只會顯示帶有名稱的最後一個UID。當有更多的PHP/Mysql搜索返回只有1結果

$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> 
    } 

回答

0

下面的代碼打印在

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

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

1

它返回所有結果。你沒有正確打印它們。

while循環外的html,body,table標記移動。

更改環路:

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

    $puid2 = $row['PlayerUID']; 
    $plnm = $row['PlayerName']; 
    echo "<tr><td>".$puid."</td>"; 
    echo "<td>".$plnm."</td></tr>"; 
} 
+0

就試了一下。它仍然只是從上面拉出最後一個PUID。 ' \t \t

\t <? while($ row = mysql_fetch_array($ sql)){ \t $ puid2 = $ row ['PlayerUID']; \t $ plnm = $ row ['PlayerName']; \t> \t \t \t \t \t \t \t​​ \t \t \t \t \t​​<?php echo「$ plnm」; ?> \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t
\t \t' – Ryahn

+0

不好意思,剛纔馬去編輯。 也需要在循環內。循環將針對返回的每一行執行,因此您需要在循環的每個實例中創建一個元素。 – Osiris

+0

我剛試過。仍然只顯示1 '<? while($ row = mysql_fetch_array($ sql)){ \t $ puid2 = $ row ['PlayerUID']; \t $ plnm = $ row ['PlayerName']; \t \t \t \t \t \t \t回聲 「​​」。$ PUID。 「」; \t \t \t \t \t echo「​​」。$ plnm。 「」; \t \t \t \t \t \t \t \t \t \t \t \t \t \t }> \t \t \t' – Ryahn

相關問題