Hnusny Pleb
Hnusny Pleb

Reputation: 43

MYSQL Get a column value and display it in PHP

I have a problem

I want to echo the value of "points" column.

What I tried, but did not work:

$stmt = $mysqli->prepare("SELECT points FROM member_profile WHERE user_id = '$firstName'");
$stmt->execute();
$array = [];
foreach ($stmt->get_result() as $row)
{
    $array[] = $row['points'];
}
print_r($array);

THis is my current code:

<?php
header('Content-Type: text/html; charset=Windows-1250');    
session_start();
$firstName = $_SESSION['firstname'];

$servername = "db.xxxx.gsp-europe.net";
$username = "xxxxxxxxxxxxx";
$password = "xxxxxxxxxxxxxx";
$dbname = "xxxxxxxx";

/// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection   

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

// check if the user exist
$check = "SELECT * FROM `member_profile` WHERE user_id = '$firstName'";
$result = mysqli_query($conn,$check) or die(mysqli_error($conn));
        $rows = mysqli_num_rows($result);
        //if exist increse points with 1
        if($rows>=1){

$sql = "UPDATE `member_profile` SET points = points + 1 WHERE user_id = '$firstName'";
    
   if ($conn->query($sql) === TRUE) {
    echo "Thingz created successfully";
} else {
    echo "Error doing sum thingz: " . $conn->error;
}
        }

        // if don't exist create user with points 0
        if ($rows == 0)
        {
            $query = "INSERT into `member_profile` (user_id, points) VALUES ( '$firstName' ,'0')";

            $result = mysqli_query($conn,$query)or die(mysqli_error($conn));

            $conn->close();
        }
?>

What I need in the nutshell: In the end of file, will be a "echo" that will show the current value of "points" column with identificator "user_id". Thats all

Thanks for your time, I appreciate it !

Upvotes: 0

Views: 1883

Answers (1)

Cid
Cid

Reputation: 15247

You are getting the result, but aren't fetching the datas.

$stmt->get_result() returns a result set -> mysqli_result and to handle this, you need to call the method fetch_array() from that result.

change your code to :

$results = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
    $array[] = $row['points'];
}

If you only want 1 result without using arrays, don't use arrays (yes, yes).

$results = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_ASSOC))
{
    $points = $row['points'];
}

Upvotes: 2

Related Questions