Rzj Hayabusa
Rzj Hayabusa

Reputation: 657

How to view input based on if condition in PHP MySQLi

How to make the if statement, if the the post belongs to the user, then only the owner of the post has a like/view/edit/delete button available. If the post does not belong to the user, it only displays like and view buttons.

<?php
$get_post = "SELECT * FROM posts";
$run_post = mysqli_query($connect, $get_post);
if($run_post && mysqli_num_rows($run_post) > 0)
{
    while($row_post = mysqli_fetch_array($run_post))
    {
        $post_title  = $row_post['post_title'];
        $get_user    = "SELECT * FROM users WHERE user_id='$user_id'";
        $run_user    = mysqli_query($connect, $get_user);
        $check_user  = mysqli_fetch_array($run_user);
        $user_name   = $check_user['name'];
        $user_images = $check_user['images'];

        echo "<div id='post_wrap'>
            <p>$post_title</p>
            <a href=''><button>Like</button></a>
            <a href=''><button>View</button></a>
            <a href=''><button>Delete</button></a>
            <a href=''><button>Edit</button></a>
            </div>";
    }
    mysqli_free_result($run_post);
}
else
{
    echo "No post yet";
}
?>

Upvotes: 0

Views: 78

Answers (3)

Gayan
Gayan

Reputation: 2935

You have to store user_id as a session value. Then you can checked current user posts this way, $_SESSION['user_id'] == $row_post['user_id']

 echo "<div id='post_wrap'>
           <p>$post_title</p>
           <a href=''><button>Like</button></a>
           <a href=''><button>View</button></a>";
           if($_SESSION['user_id'] == $row_post['user_id']){
                  echo "<a href=''><button>Delete</button></a>
                        <a href=''><button>Edit</button></a>";
            }            

     echo "</div>";

Upvotes: 2

php-india
php-india

Reputation: 36

Use Following, check if user id and database id are same so that will add extra HTML in $login_user else will be empty. And echo $login_user in your View.

<?php

    $get_post = "SELECT * FROM posts";
    $run_post = mysqli_query($connect, $get_post);
        if($run_post && mysqli_num_rows($run_post) > 0 )
        {
            while($row_post = mysqli_fetch_array($run_post))
            {
                $post_title      = $row_post['post_title'];

                $get_user   =  "SELECT * FROM users WHERE user_id='$user_id'";
                $run_user   = mysqli_query($connect, $get_user);
                $check_user = mysqli_fetch_array($run_user);

                    $user_name  = $check_user['name'];
                    $user_images = $check_user['images'];   

                    $login_user = ($user_id == $row_post['user_id'])? "<a href=''><button>Delete</button></a>
                                    <a href=''><button>Edit</button></a>": "";
                        echo "<div id='post_wrap'>
                                    <p>$post_title</p>
                                    <a href=''><button>Like</button></a>
                                    <a href=''><button>View</button></a>".
                                $login_user . "
                                </div>";
            }
            mysqli_free_result($run_post);          
        }
    else
    {
        echo "No post yet";
    }
?>  

Upvotes: 0

Arshid KV
Arshid KV

Reputation: 10037

Please check following answer.

                 $html = "<a href=''><button>Like</button></a>
                            <a href=''><button>View</button></a>";
                if($user_id == $row_post['user_id']){
                   $html .= "<a href=''><button>Delete</button></a>
                         <a href=''><button>Edit</button></a>"
                }            
  echo $html;

Upvotes: 0

Related Questions