Home php self class return null
Reply: 1

php self class return null

misterxis
1#
misterxis Published in 2017-12-08 01:08:47Z

Please, my PHP class when the $r['lider_rede'] is different from NULL, the return is always NULL, when it should return the value found in variable $r['lider_rede']. Where am I making a mistake?

public function buscarPessoaCabecaRede($con, $id_pessoa, $pessoa_id_pessoa) {
    if (!is_null($pessoa_id_pessoa)) {
        $sql = "SELECT id_pessoa,pessoa_id_pessoa,lider_rede FROM pessoa WHERE id_pessoa = $id_pessoa";
        $query = mysqli_query($con, $sql);
        $r = mysqli_fetch_array($query);

        if ($r['lider_rede'] !== NULL) {
            return $r['lider_rede'];
            //WHEN I APPLY TO VAR_DUMP IN THIS VARIABLE, IT HAS A VALUE, BUT IT DOES NOT RETURN TO THE OBJECT
        }
        else{
            $sql1 = "SELECT id_pessoa,pessoa_id_pessoa,lider_rede FROM pessoa WHERE id_pessoa = $pessoa_id_pessoa";
            $query1 = mysqli_query($con, $sql1);
            $q = mysqli_fetch_array($query1);
            self::buscarPessoaCabecaRede($con,$q['id_pessoa'],$q['pessoa_id_pessoa']);
        }

    } else {
        $sql2 = "SELECT id_pessoa,pessoa_id_pessoa,lider_rede FROM pessoa WHERE id_pessoa = $id_pessoa";
        $query2 = mysqli_query($con, $sql2);
        $s = mysqli_fetch_array($query2);
        return $s['lider_rede'];
    }
}
Rolando Cruz Varona
2#
Rolando Cruz Varona Reply to 2017-12-08 03:23:57Z

Of course i don't know the exact purpose of your code, or what are your bussiness caracteristiques, but anyway i think you have a mess in your code: so, maybe this could be a better approach, anyway you are using self:: which is used only for methods statics, you should use $this-> instead of self::

public function buscarPessoaCabecaRede($con, $id_pessoa, $pessoa_id_pessoa) {

if( (!is_null($id_pessoa)) && (!is_null($pessoa_id_pessoa)) ){
    $sql = "SELECT id_pessoa,pessoa_id_pessoa,lider_rede FROM pessoa WHERE id_pessoa = $pessoa_id_pessoa";
    $query = mysqli_query($con, $sql);
    $r = mysqli_fetch_array($query);

    $this->buscarPessoaCabecaRede($con,$r['id_pessoa'],$r['pessoa_id_pessoa']);
}else   
if (!is_null($id_pessoa)) $id = $id_pessoa; else
if (!is_null($pessoa_id_pessoa)) $id = $pessoa_id_pessoa;

$sql = "SELECT id_pessoa,pessoa_id_pessoa,lider_rede FROM pessoa WHERE id_pessoa = $id";
$query = mysqli_query($con, $sql);
$r = mysqli_fetch_array($query);

if ($r['lider_rede'] !== NULL) return $r['lider_rede']; else return null;

}

I hope that you will be aware of the problems of the sql injection, so i suggest you use pdo to work with your database and use of parameters inside of the queries, ex. you should do it like that:

$stmt = mysqli->prepare("SELECT id_pessoa,pessoa_id_pessoa,lider_rede FROM pessoa WHERE id_pessoa = :pessoa_id_pessoa");
$stmt->bind_param(":pessoa_id_pessoa", $pessoa_id_pessoa);
$stmt->execute();
You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.312464 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO