Ir para conteúdo
Fórum Script Brasil
  • 0

Usando variável no select PHP+SQL


XbinoX

Pergunta

Bom dia gente.

Estou com um problema em uma função que usei em alguns sites mas agora ela insiste em não funcionar.

 

O caso é o seguinte estou trabalhando em um site de uma escola que tem vários cursos, criei no banco de dados uma identificação para cada um, meu objetivo é que quando o usuário clica em determinado link o script PHP pegue a url passe uma parte específica para dentro da função e essa função faz o select no banco para montar a página que o usuário escolheu (ex. clicou em informática, busca as informações no banco e monta a página).

Estava fazendo isso com galerias de fotos e funcionava normal mas agora estou quebrando a cabeça...

Página que recebe a URL e envia para a função (index.php)\

$url = $_SERVER ['REQUEST_URI'];
$endereco=explode("&",$url);
$nome=end($endereco);
echo $nome;
BuscarCursos($nome);

Função

function BuscarCursos($nome){
           echo $nome;
          $pdo = conectarBanco();
      try {
          $buscar = $pdo->prepare('SELECT * FROM cursos WHERE busc_curso=:busc_curso');
          $buscar->bindValue(":busc_curso", $nome, PDO::PARAM_STR);
          $buscar->execute();
           if($buscar->execute()){
            return $buscar->fetchAll(PDO::FETCH_OBJ);
        }
        throw new Exception("Erro na consulta", 1);
    }
    catch(PDOException $e){
        echo $e->getMessage();
    }
}
 

Página de saída da função (cursos.php)

 <?php
       $dados = BuscarCursos();

    echo '<pre>';
    // print_r($dados); // só para debugar o que vem de BuscarCursos();
    echo '</pre>';
    
    foreach($dados AS $dado){
       print_r($dados);
       echo $dados['id_curso'];
    }

Em anexo estão os erros apresentados...

 

Desde já, meu muito obrigado.

 

 

Sem título.png

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá, boa tarde.

Segundo os erros, a variável $nome não foi definida.

Post um exemplo da url que você está retirando os parâmetros, isso pra gente saber o que a variável nome deveria receber e o que ela está recebendo.

e a propósito, por que você está executando a consulta duas vezes seguidas, conforme o código abaixo.

   $buscar->execute();
   if($buscar->execute()){
            return $buscar->fetchAll(PDO::FETCH_OBJ);
   }

Não poderia substituir por isso:

  if($buscar->execute()){
            return $buscar->fetchAll(PDO::FETCH_OBJ);
  }else{
	return NULL;
}

até mais.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa trade.

Já arrumei essa parte de executar o select duas vezes hehehe.

Bom da variável $nome recebe apenas o final da minha URL.

$url = $_SERVER ['REQUEST_URI'];
$endereco=explode("&",$url);
$nome=end($endereco);
BuscarCursos($nome);

Quando ela chega na função e eu dou um echo ela me mostra o final da URL (ex. it, que é um apelido para o curso que estou procurando).

 

O problema é que,se eu tento rodar o select passando a variável nome recebo um array vazio.

mas se rodo o mesmo select com a variável $nome="it", funciona corretamente.

 

Pensando nisso montei um array com os apelidos.

$cursos = array(0=>"it",
                        1=>"mc");

e depois usei o array_search para localizar o valor desejado passando para a variável o seguinte.

$key =array_search($nome, $cursos);
           $curso=$cursos[$key];

E FUNCIONOU :D em partes, mas o array search me mostra apenas o registro 0 do array e não muda para as outras posições do array :/

Existe alguma forma de fazer ele mudar? Caso exista e puder me ajudar agradeço pois desta forma ele funcionou, preciso apenas fazer com que ele altere o registro de acordo com o apelido recebido pela variável $nome.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...