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>

Recommended Answers

All 5 Replies

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."'";

Cheers SATYAMEBA JAYATE!

<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!

Member Avatar for diafol

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.

Member Avatar for diafol

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. :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.