Usar links para variáveis aos construtores PHP

4 respostas
S

Olá pessoal.

Peguei a página de um amigo para refazer, descobri que é em PHP, até ai blz, manual, net e um pouco de teste resolvido a linguagem. :wink:
O problema é que quem construiu fez um projeto SEM documentação, estou apanhando para seguir os construtores e entender a relação dele com o BD que é muito confuso e não segue normatização nenhuma. :?

Bom, tirando a parte de “onde esta a variável” queria entender como funciona o envio de variáveis via links :shock:

veja o exemplo :?

li
  a href="?sec=40&type=dd&nb=1&lg="
    img src="minha_foto.jpg" alt="veja meu currículo"
  /a
/li

A questão é que ele busca no banco estas informações de onde esta a informação (pasta/subpasta), trás colunas e etc… ai imprime via “for” quando há mais de uma informação na cláusula WHERE; 8)

não consigo pegar as variáveis e nem sei quais comandos o sistema esta usando para isso tendo em vista que está bem complicado sua construção…
se fosse ainda orienteção a objeto tranquilo, mas não é. :frowning:

O formato da programação é estruturado. :shock:
index.php que if (construtores via variável) ai “include” a página construtora que pode ter outro subcontrutor via outro if com query de busca por variáveis do link…

Se alguém puder me explicar como pegar estas variáveis no php e fazer as query funcionarem ficarei muito feliz… :thumbup: :smiley: :mrgreen:

4 Respostas

J

Solonbra,

Quando você passa uma variável de uma página A para uma página B, você pode fazer isso de duas formas: via GET (na url, como no seu exemplo) ou via POST.

A principio, o seu código monta dinamicamente uma lista com vários links.
<li>
  <a href="?sec=40&type=dd&nb=1&lg=">
       <img src="minha_foto.jpg" alt="veja meu currículo">
  </a>   
</li>

Veja que o clique envia para a mesma página. Em PHP é comum ver assim

mas nada impede de você enviar os dados para a mesma página.

Para receber as variáveis, nesse caso, você deve fazer assim no início do script (da página destino):
$sec = $_GET['sec']; //vai pegar 40
$type = $_GET['type']; //dd
$nb = $_GET['nb']; //1
$lg = $_GET['lg']; //não tem nenhum valor atribuído a essa variável

Agora, com relação as querys, não sei como lhe ajudar, pois você não colocou nenhuma.
Está um pouco confusa sua pergunta.

Qualquer dúvida pergunte.

S

Valeu pela explicação.

O sistema que peguei neste site e um pouco confuso pela sua lógica. :?

Basicamente tem a página index.php que inicia o acesso ao BD e faz o link com a maior parte do CSS e Javascript, depois vem uns if else para decidir "quais páginas" ela abre conforme clicamos nos links, o que achei estranho é o fato de não achar declarações de $_GET ou $_POST nos arquivos. :shock:

por exemplo

&lt;?php
     $query = 'SELECT * FROM meu_banco WHERE id_cur=' .$numero. ';';
     $result =....

...
&lt;div id="cont_corpo"&gt;
if(!$cur) {
     include "./curriculo/".$sql[2]."/".$sql[1]."php";
} else if (!$gale) {
     include "./md/".$sql[4]."php";
} else if (!$art) {
     include "./r/".$sql3[2]."/".$sql[1]."php";
} else {
     include "./content/home.php";
}
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

como pode ver as variáveis que o carinha que fez o projeto não ajudam muita coisa… :evil:

para alterar estou apanhando bastante, como tem muita coisa no ar e ele só quer mudar algumas coisas acabei aceitando mudar e não refazer o site dele, e uma página pessoal para a família dele e um pouco profissional (autonomo)… :smiley:

mas vou tentar com estas que indicou e ver o que rola…

estou acrescentando a galeria de fotos para ele… :roll:

VALEU!!

J

Alguns servidores não ha necessidade de “pegar” a variável, dessa forma:

Depende de como está a register globals do seu servidor PHP.

Em alguns casos pegasse a variável direta, basta usar ela (pode ser numa query, por exemplo):

Nessa última situação, você não sabe de onde vem a variável ($_POST[‘id’] ou $_GET[‘id’] ou $_COOKIES[‘id’] ou $_SESSION[‘id’])

S

Interessante, não sabia isso do servidor…

Queria entender porque não estou rolando "for" com o resultado da query jogo direto no bd e vem todos os dados, na página só está vindo a primeira foto.

veja o esquema que utilizei, fiz duas tabelas relacionais

listaGaleria (id_galeria,nome,endereco,publicado,qtd_foto)
galeria(id_img,id_galeria,nome,legenda)

&lt;?php
  $query1 = 'SELECT * FROM listaGaleria';
  $result1 = .... $lista1[] ....

  $query2 = 'SELECT * FROM galeria WHERE id_galeria="' .$idgaleria;    // a variável pego no esquema do get...
  $result2 = ..... $lista2[] ....

?&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="galeria"&gt;  &lt;!-- inicio da galeria [não coloquei todos os códigos  os mais importantes  --&gt;
  &lt;div id="listagaleria"&gt;
    &lt;?php for($i=0;$i&lt;$lista1[4];$i++){ ?&gt;
              <img src="http://www.meusite.com.br/<?php echo $lista1[2]; ?>/prev<?php echo $lista2[2]; ?>"  />
    &lt;?php } ?&gt;
   &lt;!--  aqui imprime as imagens que tenham o $id_galeria igual ao do link --&gt;
  &lt;/div&gt;
&lt;/div&gt;  &lt;!-- fim da galeria --&gt;
&lt;/body&gt;
&lt;/html&gt;

o $_GET não tem funcionado direito e o for não tem impresso todos os resultados da query que pega as fotos, imprime só a primeira N vezes

Criado 1 de fevereiro de 2010
Ultima resposta 3 de fev. de 2010
Respostas 4
Participantes 2