Ryahn
Ryahn

Reputation: 557

Php/Mysql search returning only 1 result when there is more

I have a double search that happens within the script. When it searches for a players gear, it will take the player UID and bring back the name of that player. The only issue is that there may be more than 1 result that will return and it will only display the last UID with the name.

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

Upvotes: 0

Views: 302

Answers (2)

Osiris
Osiris

Reputation: 4185

It is returning all the results. You're not printing them properly.

Move the html,body,table tags outside the while loop.

Change the loop to:

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

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

Upvotes: 1

Nirav Ranpara
Nirav Ranpara

Reputation: 13785

print below code in loop

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

you print only one time , so overwrite value.

Upvotes: 0

Related Questions