Andrew Aubury
Andrew Aubury

Reputation: 113

PHP retrieve MySQL rows into array

I am trying to get results from a MySQL query and then return it as a array but then on top of that I want the other function to "decode" it in to a custom array

GetProfileData Code:

public function getProfileData($username){
        $data = TBWebcam::MySQLQuery("SELECT * FROM `new_user` WHERE `user_name` = \"AndrewAubury\";");
        if($data =! null){
            $userimage = $data["user_image"];
            if($userimage =! ""){
                $userimage = str_replace("%s","",$userimage);
                $userimage = "https://A LINK YOU DONT NEED TO KNOW.net/PF.Base/file/pic/user/".$userimage;
            }else{
                $userimage = null;
            }

            $usergender = $data["gender"];
            if($usergender == "1"){
                $usergender = "Male";
            }else{
                $usergender = "Female";
            }
            //echo($data["user_id"]."<br><br><br><br>");
            $userData = array(
               "id" => $data["user_id"],
               "name" => $data["full_name"],
               "username" => $data["user_name"],
               "image" => $userimage,
               "gender" => $usergender,
            );
            echo("Data: ".$data."<br><br><br>");
            return($userData);
        }else{
            return null;
        }
    }

MySQLQuery code:

public function MySQLQuery($queryToDo){
        $servername = "my server";
        $username = "um my username :P";
        $password = "why do u need to know";
        $dbname = "the one i set it up on";

        $conn = new mysqli($servername, $username, $password, $dbname);

        if ($conn->connect_error) {return(null);}

        $sql = $queryToDo;
        $result = $conn->query($sql);
$mehArray = array();
        if ($result->num_rows > 0) {
         while($row = $result->fetch_assoc()) {
        $mehArray[] = $row;
    }
    return($mehArray);
        } else {
            return(null);
        }
        $conn->close();
    }

I am getting the MySQL array the issue is in the getProfileData function

Upvotes: 0

Views: 100

Answers (1)

Bilas Sarker
Bilas Sarker

Reputation: 459

I think it will help you

public function getProfileData($username){
        $results = TBWebcam::MySQLQuery("SELECT * FROM `new_user` WHERE `user_name` = \"AndrewAubury\";");        
        if($results == null){
            return null;
        }       

        $data = $results[0];//getting only the first result, if you have more rows the you have use for/foreach loop 
        $userimage = $data["user_image"];
        if($userimage =! ""){
            $userimage = str_replace("%s","",$userimage);
            $userimage = "https://A LINK YOU DONT NEED TO KNOW.net/PF.Base/file/pic/user/".$userimage;
        }else{
            $userimage = null;
        }

        $usergender = $data["gender"];
        if($usergender == "1"){
            $usergender = "Male";
        }else{
            $usergender = "Female";
        }
        //echo($data["user_id"]."<br><br><br><br>");
        $userData = array(
           "id" => $data["user_id"],
           "name" => $data["full_name"],
           "username" => $data["user_name"],
           "image" => $userimage,
           "gender" => $usergender,
        );                  

        echo("Data: ".$data."<br><br><br>");
        return($userData);  
    }

The code of $mehArray[] = $row; of the method MySQLQuery() sending two dimensional result set. So you have to fetch the results by looping in the method getProfileData(). I have put here 0 index value, because of you want to take 1 rows, I think.

Upvotes: 1

Related Questions