Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TiFernandes

Mesma pagina, porem resultados diferentes.

Recommended Posts

Bom dia pessoal,

Estou querendo fazer uma unica pagina que através de um link mude automaticamente, utilizando php e mysql.

Link exemplo: www.exemplo.com/teste.php?nome=teste

Como cada link vai ser diferente um do outro, eu queria saber como resgatar pelo metodo GET do php e exibir as informaçoes do MYSQL pelo metodo ECHO. Obrigado pela ajuda.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meu codigo php da pagina é o seguinte :

<?php 

   $sql = $_GET['nome'];
   $sql= "SELECT * FROM noticias WHERE nome = $sql";
   echo $sql;
?>
Porem ele nao faz a checagem no mysql, apenas mostra o nome que esta no link (nome = teste).
Lembrando que a pagina esta sendo conectada com o banco de dados do mysql corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP::PDO ou PHP::MySQLi

 

No link abaixo, você pode ver os prós e contras entre cada API, de fato, a PDO parece ser mais simples, mas ela é apenas orientada a objeto, enquanto MySQLi fornece procedural e OO:

http://php.net/manual/en/mysqlinfo.api.choosing.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

É relativo e de duas formas.

 

Se você utiliza apenas mysql no seu projeto, recomendo uso de MySQLi. Caso possuir outros bancos, PDO.

 

Entretanto, mesmo se o seu projeto for apenas MySQL, mas você possuir diversos projetos e que algum outro utilize outro SGBD, é mais fácil focar em PDO, pois, a biblioteca abstrai, através de uma interface única, a comunicação com o SGBD.

 

Eu, por gosto, uso apenas PDO. Mas se eu precisar usar MySQLi, eu tenho o conhecimento.

 

Há benchmarks que informam um pequeno ganho, por parte do MySQLi, em questão de performance. Mas, em sua maioria, a diferença é ínfima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua a mesma coisa, o echo fica assim = SELECT * FROM noticias WHERE nome = Demolidor.

Como se nao existisse o mysql pra ele procurar ou ele simplesmente nao mostra os registros .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre o código que você implementou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, deve realizar a conexão com o banco de dados:

$mysql = new mysqli('host' , 'usuário' , 'senha' , 'base_de_dados');

Preparar a consulta:

$statement = $mysql->prepare('SELECT * FROM noticias WHERE nome = ?');

mysqli::prepare lhe retorna um statement.

 

Depois, passar os valores nos placeholders (as interrogações). Os valores devem ser passados em ordem e tipados.

$statement->bind_param("s", $_GET['nome']);


Após a passagem de parâmetros, deve executar a consulta:

$statement->execute();


Deve definir as variáveis que irão receber os valores da consulta (em ordem pelas colunas);

$statement->bind_result($coluna1 , $coluna2 , $coluna3);

Percorrer linha a linha os resultados:

while ($statement->fetch()) {
    printf ("%s - %s - %s\n" , $coluna1 , $coluna2 , $coluna3);
}

E por último, mas não menos importante, fechar o cursor/statement:

$statement->close();

Existem outras situações. Caso você esteja utilizando o driver mysqlnd (o que é recomendado), pode utilizar o método mysql_stmt::get_result. Ele facilita na hora de retornar os resultados, além de ser um driver mais rápido.

Outra situação, caso o seu SQL não possua parâmetros ou os parâmetros são de "fonte segura" (não vou entrar em muitos detalhes aqui), você pode utilizar diretamente o método mysqli::query ao invés do prepare. Dessa forma não precisará utilizar o método mysql_stmt::bind_param.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou fazendo isso para ao inves de criar varias paginas só precise criar uma, nao deu muito certo o metodo acima praticamente nao ocorreu o esperado e tambem nao entendi muito a codificaçao. Teria algum metodo mais simples para me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre o que você codificou e aponte as suas dificuldades.

 

Mais simples até existe. Mas, antes, é importante entendermos o que você não entendeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe a demora.

A logica é bem simples ate, quero queo php sinalize a informaçao que esta no link fazendo a consulta no banco de dados e assim exibir as tabelas do banco. Apenas isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, o que você implementou e qual a sua dificuldade em implementar o resto da lógica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mysql ja esta esta recebendo a conexao do php corretamente, optei pelo php::mysql normal mesmo.

Na index do site tem um link "midias/filmes/capitaoamericaguerracivil.php?nome=Demolidor"

eu gostaria que a pagina capitaoamericaguerracivil.php recebesse as informaçoes da tebela cujo o nome é igual a Demolidor. Enfim, oque estou tendo dificuldade é chamar esses dados para a outra pagina, ja fiz de tudo porem aparentemente errado. obs:o feach_array nem o while deram certo. Obrigado pela pasciencia, caso queria se comunicar com skype, ts ou ate facebook ajudaria muito :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste a sua solução, pode vir a ajudar futuros desenvolvedores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solução :

 

<?php
$nome = $_GET['nome'];
$query = mysql_query("SELECT * FROM mf_midias WHERE nome='$nome'");
$dados = mysql_fetch_array($query);
?>
Depois basta chamar o nome das tabelas do banco .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, mas o uso de mysql_* é desencorajado a muitos anos.

 

As funções foram depreciadas no PHP 5.5 e removidas no PHP 7. Logo é fortemente recomendado que migre para mysqli ou pdo.

 

Da forma que você implementou, possui uma falha de segurança (conhecida como SQL injection) que não existe no exemplo que lhe apresentei no post #10.

 

O moderador Beraldo possui, em seu blog, um artigo explicando como migrar de mysql para mysqli:

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.