0

I created a PHP form which allows users to Register and Log in. Now I created another page named View.php that will show all the registered users in my MySQL database. The code I used was

while($row=mysqli_fetch_assoc($sql))...

and it displayed all the users successfully.

Now I created another PHP page which I named profile.php. I want to add a link from every result on view.php which will redirect to profile.php?user=(their username). But I don't know how.

Gorgsenegger
  • 7,356
  • 4
  • 51
  • 89
DKReigns
  • 23
  • 1
  • 6
  • it's in http://pastebin.com/u4dNkaav :) – DKReigns Apr 27 '14 at 10:49
  • the $them I used was temporarily my own username so if I click the link it will always redirect to my data.. I really want it to like if I click the View Profile of "Bob", the php will redirect me to profile.php?user=bob... please help me – DKReigns Apr 27 '14 at 10:52

3 Answers3

0

In your view.php considering that you have a column named 'username' , change the following : please not, it's preferably to put the ID column If you want to put the id column, simply change the $row['username'] to $row['id'] and the same in the query in profile.php

<?php
...
            while($row=mysqli_fetch_assoc($result)) {
                    echo "---------------------<br/>";
                    echo "<b>".$row['fullname']."</b><br/>";
                    echo "<small><i>".$row['course']."</i></small><br/>";
                    echo "<small><a href = 'friends.php?user=".$row['username']."'>[View Profile]</a></small><br/>";
                    echo "---------------------<br/><br/>";

            }

    ?>

And in your profile.php

<?php session_start();

        if($_SESSION['logged_in']==false) {
                header("Location:login.php");
        }


        include("header.php");

?>

<html>
<head>
        <title>View School-Mates</title>
</head>
        <body>
                <center>
                        <h1>My School-Mates</h1>
                        <small>View or Add them in your Trust List</small>
                        <br/><br/>
                        <hr>
                </center>

<?php
 try {
        $dbh = new PDO('mysql:host=localhost;dbname=test_basic', "root", "");

        $stmt = $dbh->prepare("SELECT * FROM USERS WHERE username= ?");
        if ($stmt->execute(array($_GET['user']))) {
            while ($row = $stmt->fetch()) {
                //here you will have your row with all your username data
            }
        }

} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

?>

</body>
</html>

Please read more about PDO from here and how to do connections this is required because you get data from your $_GET variable, and thus you need to avoid for sql injection

Hopefully this is what you wanted, if not, please let me know so i can adjust the code

Community
  • 1
  • 1
Paul Bele
  • 1,514
  • 1
  • 11
  • 12
0

I do not know the code you are using to achieve the result but having something like :

$query = "SELECT * FROM database WHERE id=$id";
$query = mysql_query($query);

This will filter out the profile page according to the user id

prat1kk
  • 408
  • 5
  • 12
0

In this line:

echo "<small><a href = 'profile.php?user=$them'>[View Profile]</a></small><br/>";

instead of using your fixed $them, just use $row['id']. Then you can fetch the user with that id in your profile.php file:

$id = $_GET['user'];
$sql = "SELECT * FROM users where id = $id";

Note that this code is prone to sql injection. I only posted it to make the idea easier to understand. See here how to do it right.

Community
  • 1
  • 1
tim
  • 1,999
  • 17
  • 32