0

Hiya Folks,

Why is not mysql getting UPDATED, do you reckon ?

<html>
<head>
<title>
<?php 
$user?> Home Page
</title>
</head>
<body>
<body background=".png">

<?php
session_start();
require "conn.php";

/*Check if user is logged-in or not by checking if session is set or not. 
If user is not logged-in then redirect to login page. Else, show user's account homepage.*/

if(!isset($_SESSION["user"])) 
{
    header("location:login.php");
}
else 
{
    $user = $_SESSION["user"];
    $sql = "SELECT * FROM $user WHERE Username = '".$user."'";
    $result = $conn->query($sql);
    while($row = mysqli_fetch_assoc($result))
    {
        $db_id = $row["Id"];
        $db_username = $row["Username"];
        $db_forename = $row["Forename"];
        $db_surname = $row["Surname"];
        $db_email = $row["Email"];
        $db_bio = $row["Bio"];
        $db_status_to_friends = $row["Status_To_Friends"];
        $db_status_to_public = $row["Status_To_Public"];
        $db_latest_view = $row["Latest_View"];    

        //Welcome user by name.
        echo "<center>Welcome <b><h2>$db_forename $db_surname!</center>"?></h2></b>|

        <?php
        //Display log-out link.
        echo "<p align='right'><a href='logout.php'>$user Log Out</a>";?>|</p><br>

        <form method="post" action="">  
        <div class="form-group">
        <center><label>Post Status To Friends:</label>
        <input type="text" placeholder="Post Status To Friends" name="post_status_to_friends" /></center><br>
        <center><button type="submit" class="btn btn-default" name="post_status_to_friends" />Post Status To Friends!</button></center>
        </div>
        </form><br>
        <br>
        <form method="post" action="">
        <div class="form-group">
        <center><label>Post Status To Public:</label>
        <input type="text" placeholder="Post Status To Public" name="post_status_to_public" /></center><br>
        <center><button type="submit" class="btn btn-default" name="post_status_to_public" />Post Status To Public!</button></center>
        </div>
        </form>
        <?php
        //Post User Status To Friends in $user table.

        if  (isset($_POST['post_status_to_friends']))
        {
            $status_to_friends = trim($_POST["post_status_to_friends"]);
            $status_to_friends = mysqli_real_escape_string($conn,$status_to_friends);

            $sql = "UPDATE $user SET Status_To_Friends "$db_status_to_friends" WHERE Username = '".$user."'";
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for friends to $user table!";
            }
            else    
            {
                echo "posting status for friends to $user table failed!";
            }

            //Post User Status To Friends in "users" table.

            $sql = "UPDATE users SET Status_To_Friends "$db_status_to_friends" WHERE Username = '".$user."'";
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for friends to users table!";
            }
            else    
            {
                echo "posting status for friends to users table failed!";
            }
        }
        ?><br>
        <br>

        <?php
        //Post User Status To Public in $user table.

        if  (isset($_POST['post_status_to_public']))
        {
            $status_to_public = trim($_POST["post_status_to_public"]);
            $status_to_public = mysqli_real_escape_string($conn,$status_to_public);

            $sql = "UPDATE $user SET Status_To_Public "$db_status_to_public" WHERE Username = '".$user."'";
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for public to $user table!";
            }
            else    
            {
                echo "posting status for public to $user table failed!";
            }

            //Post User Status To Public in users table.
            $sql = "UPDATE users SET Status_To_Public "$db_status_to_public" WHERE Username = '".$user."'";
            if($conn->query($sql)===TRUE)
            {
                echo "posted status for public to users table!";
            }
            else    
            {
                echo "posting status for public to users table failed!";
            }               
        }
        ?><br>
        <br>

    <?php 
    //Display User Status To Friends. Search for User's data with $user.

    $query = "SELECT * FROM $user WHERE Username = '".$user."'";
    $result = mysqli_query($conn,$query);
    $numrows = mysqli_num_rows($result);
    if($numrows = 0)
    {       
        echo "No data!";
    }
    else 
    {
        while($row = mysqli_fetch_assoc($result)) 
        {     
            $db_status_to_friends = $row["Status_To_Friends"];
        }
        echo "<br><b>$user Status To Friends:</b><br>
        $db_status_to_friends";
        }
    }
    ?><br>
    <br>

    <?php 
    //Display User Status To Public. Search for User's data with $user.
    $query = "SELECT * FROM $user WHERE Username = '".$user."'";
    $result = mysqli_query($conn,$query);
    $numrows = mysqli_num_rows($result);
    if($numrows = 0)
    {       
        echo "No data!";
    }
    else 
    {
        while($row = mysqli_fetch_assoc($result)) 
        {     
            $db_status_to_public = $row["Status_To_Public"];
        }
        echo "<br><b>$user Status To Public:</b><br>
        $db_status_to_public";
    }
    ?><br>
    <br>

    <?php 
    //Display User's Latest View.
    echo "<br><b>Latest View:</b><br>";
    echo "$db_latest_view";?><br>
    <br>

    <?php 
    //Display User's Latest Viewed Url in iFrame.?>
    <iframe src="<?php echo $db_latest_view;?>"></iframe>

    <?php 
    //Display User Bio.
    echo "<br><b>Bio:</b><br>";
    echo "$db_bio";?><br>
    <br>

    <?php 
}

?>

</body>
</html>
4
Contributors
5
Replies
30
Views
6 Months
Discussion Span
Last Post by diafol
1

Incorrect sql syntax used to update a table.

$sql = "UPDATE users SET Status_To_Public "$db_status_to_public" WHERE Username = '".$user."'";

Use an equal to sign i.e. =to set a value to a field of a table.

$sql = "UPDATE users SET Status_To_Public ="$db_status_to_public" WHERE Username = '".$user."'";
0

<form method="post" action="">

this occurs at two points in your code - line 46 and 54.

So with no action to carry out, you will not get any updates of data edited in the forms occurring.
The action is the file to run to carry out the update using the data in the form.

All you are doing is collecting data from the database and displaying the data from the database. The rest of the php says update the table with the same data you have just read from the database. All the php from line 64 onwards is happening on the server BEFORE the page is displayed!

0

http://php.net/manual/en/function.session-start.php says

To use cookie-based sessions, session_start() must be called before outputing anything to the browser.

So to avoid issues, put his on top of your file, before any whitespace or html:

<?php
session_start();

Also, this:

if(!isset($_SESSION["user"])) 
{
    header("location:login.php");
}

header() should be called before any output too. Also header redirects usually take an exit; after them.

Edited by diafol

0

As you're starting out, it doesn't matter too much at the moment, but try to separate out your PHP and HTML as much as possible. Try to avoid too much echo of html tags and including blocks of PHP in sections of HTML.

Creating functions and locking away code inside them is a good step to take once you're familiar with the basics. Then once you do that, you'll be equipped to try out OOP. :)

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.