PHP - SQL query

0

I am trying to implement a code to list information from 3 tables. I want to display only the data that has been registered by the user id = '20' . This value '20' I'm getting a session variable and I want to put it in my list function but I'm not getting it.

follows:

$idSessao = $_SESSION['sessaoId'];

function listaProdutos($conexao){
    $produtos = array();
    $resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome, u.id as id_usuario from produtos as p inner join categorias as c on c.id = p.categoria_id inner join usuarios as u on u.id = p.usuario_id where p.usuario_id = 20");
    while ($produto = mysqli_fetch_assoc($resultado)){
        array_push($produtos, $produto);
    }
    return $produtos;
}

Where is p.usuario_id = 20 would like to do this p.usuario_id = {$idSessao} but it does not return anything.

    
asked by anonymous 03.02.2017 / 03:47

1 answer

1

If code has a variable scope problem, $ idSession is not a global variable, so the function does not "see" this variable. About scope of functions take a look here

To solve the problem, or you declare $ idSession within the function (I do not recommend).

global $idSessao

Or you put this line inside the function:

$idSessao = $_SESSION['sessaoId'];

or put a parameter in the function that way

$idSessao = $_SESSION['sessaoId'];

function listaProdutos($conexao,$usuario_id){
    $produtos = array();
    $resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome, u.id as id_usuario from produtos as p inner join categorias as c on c.id = p.categoria_id inner join usuarios as u on u.id = p.usuario_id where p.usuario_id =".$usuario_id); // Corrigi o seu código aqui
    $produtos = mysqli_fetch_all($resultado); //não precisa de laço while se vai retornar um array 
    return $produtos;
}

//chamada da função
function listaProdutos($conexao,$idSessao);

This third option will give you greater flexibility in the function, since the userid can come from anywhere, making the function more reusable. About mysqli_fetch_all you can read more here

    
03.02.2017 / 04:15