[PHP]Help me with get account data
#1

Okay so i am trying to display the data of the player that has been clicked. Its almost working but for some reason it always just displays the name of the first person in the database. This is the code:
PHP код:
<?php
global $mysql// we are going to use mysql right? :P
if (isset($_GET['Name'])) { 
      
$page  mysqli_escape_string($mysql, (int)$_GET['Name']); // let's make sure that we just get the integer and not a attempt to do sql injection
        
$query mysqli_query($mysql"SELECT * FROM `Users` WHERE `Name` = {$page}");
        if(!
mysqli_num_rows($query)) { // if the club requested does not exists...
            
header("Location: ?p=Topscores");
            exit;
        }
        
$data mysqli_fetch_array($query); // $data['ROW_NAME'];
        
echo $data['Name'];
 } else { 
?>
    <h1>Top 20 players with the highest score</h1>
    <table width="960" border=1 frame=void rules=rows>
        <tr>
            <td>Pos.</td>
            <td>Name</td>
            <td>Score</td>
            <td>Truckloads</td>
            <td>Convoy score</td>
        <tr>
        <?php 
        $Count 
1;
        
$query mysqli_query($mysql"SELECT * FROM `Users` ORDER BY `Score` DESC LIMIT 0,100");
        while(
$row mysqli_fetch_array($query)) { 
        echo 
'
        <tr>
            <td>'
.$Count.'</td>
            <td><a href="?p=Topscores&Name='
.$row['Name'].'">'.$row["Name"].'</a></td>
            <td>'
.$row["Score"].'</td>
            <td>'
.$row["TJobs"].'</td>
            <td>'
.$row["CJobs"].'</td>
        </tr> '
;
        
$Count++; } ?>
    </table>
<?php ?>
<br><br><br>
Does anyone know why it always displays the first person in database?
Reply
#2

Код:
"SELECT * FROM `Users` ORDER BY `Score` DESC LIMIT 0,100"
u are limiting the selecting of rows to 0?


Код:
 
        $Count = 1; 
        $query = mysqli_query($mysql, "SELECT * FROM `Users` ORDER BY `Score` DESC LIMIT 0,100"); 
        while($row = mysqli_fetch_array($query)) {  
        echo ' 
        <tr> 
            <td>'.$Count.'</td> 
            <td><a href="?p=Topscores&Name='.$row['Name'].'">'.$row["Name"].'</a></td> 
            <td>'.$row["Score"].'</td> 
            <td>'.$row["TJobs"].'</td> 
            <td>'.$row["CJobs"].'</td> 

        </tr> '; 
        $Count++; }
also why are you using and incrimenting the count variable?
Reply
#3

That is not where the problem comes from. the problem is coming from:
PHP код:
global $mysql// we are going to use mysql right? :P 
if (isset($_GET['Name'])) {  
      
$page  mysqli_escape_string($mysql, (int)$_GET['Name']); // let's make sure that we just get the integer and not a attempt to do sql injection 
        
$query mysqli_query($mysql"SELECT * FROM `Users` WHERE `Name` = {$page}"); 
        if(!
mysqli_num_rows($query)) { // if the club requested does not exists... 
            
header("Location: ?p=Topscores"); 
            exit; 
        } 
        
$data mysqli_fetch_array($query); // $data['ROW_NAME']; 

        
echo $data['Name']; 
 } else { 
?> 
For some reason it always selects the first row
Reply
#4

You have to use while loop with mysqli_fetch_array

PHP код:
while($data mysqli_fetch_array($query)) // $data['ROW_NAME']; 
{
    echo 
$data['Name']; 

Reply
#5

That echo's ALL names in the database. What i want is that when you click a name the Header changes to ?p=Topscores&Name=EXAMPE it shows the stuff about that particular account with that name.

Edit i think its in this line:
PHP код:
$page  mysqli_escape_string($mysql, (int)$_GET['Name']); // let's make sure that we just get the integer and not a attempt to do sql injection 
Because Name is not an int. I dont know how to change it though :S
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)