Ir para conteúdo

POWERED BY:

Arquivado

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

Bruno Rosendo

[Resolvido] referencia dinamica para link estatico

Recommended Posts

olá pessoal sou ininciante em programação php, gostaria de saber se o que eu quero é possivel...

 

utilizo para o desenvolvimento do meu web site a plataforma dreamweaver cs4

 

supomos q eu tenho uma tabela chamada clientes onde onde irei mostrar os registros em uma pagina chamada listar clientes...

são mostrados nesta pagina apenas os clientes cujo campo situação é igual ativo...

 

ok...

 

o problema é que eu precisaria linkar o nome do cliente com sua pagina...

 

será possivel fazer uma referencia dinamica? por exemplo se o nome do cliente for "padaria" o sistema direcionar para a pagina "padaria.php"?

 

gente naum sei se estou indo pelo caminho certo... mas creio que sim

 

poderia usar tbm uma pagina "exibir_conteudo" usando go to detail page... mas o problema é que o conteudo não pode ser dinamico... pois cada "cliente" (que nao é bem um cliente) teria uma pagina diferente...

 

ou seja a referencia do link tem q ser dinamica... referencia esta que vai apontar para uma pagina existente no servidor (estatica).

 

bom gente espero ter me expressado bem... aguardo respostas

 

desde já mto obrigado!

 

Bruno Ricardo Rosendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal não sei se postei no lugar correto já que sou novo no fórum, fikei em duvida entre aqui a categoria mysql e a categoria Dreamwever... qualquer coisa me avisem por favor...

 

obrigado!

 

Bruno Ricardo Rosendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, pesquise no php.net sobre a funcao file_exists

 

Determine qual vai ser o padrão para a pagina do seu cliente...

 

Por exemplo:

Nome em minusculas separados por "_" seguidos de ".php"

JOAO DA SILVA iria procurar a pagina "joao_da_silva.php"

 

e retorne um link valido apenas para as paginas verificadas atraves do file_exists

 

$pagCliente = "joao_da_silva.php";
if(file_exists($pagCliente))
{
   /* mostra o link para pagina verificada */
}else{
   /* nao faz nada ou mostra cliente sem pagina ou algo do tipo */
}
a função file_exists retorna true se encontrar o arquivo ou false se não encontrar.

 

estou considerando que as paginas de seus clientes estão em seu servidor, você não consegue usar este comando em servidores externos,

caso precise, acho que pode usar o file_get_contents

 

bom, em síntese a idéia tá ai... php.net e mão na massa!

 

Abraço

 

Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha.

 

Para mostrar os dados na tela de vários clientes, você vai usar um While Certo ?

Vamos supor isso:

<html>
<body>
<table>
   <tr>
      <td>Cliente</td>
      <td>Link</td>
   </tr>
<?php
.
.
.
while($rs = mssql_fetch_array($query))
{
   if($rs['nome_cliente'] == 'padaria')
   {
       $link = 'padaria.php';
   }
   elseif($rs['nome_cliente'] == 'acougue')
   {
       $link = 'acougue.php';
   }
   // E assim vai.
   echo "<tr>
             <td>$rs['nome_cliente']</td>
             <td>$link</td>
         </tr>";
}

Você tem que verificar, Se for Uma coisa, Faça tal coisa, Se for Outra coisa, faça outra coisa.

Dae você usa os If's, que nem no exemplo que eu dei.

 

Duvidas ? Poste!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar um campo em sua tabela de clientes, que chama site nele você grava o nome do site do seu cliente.

 

ex:

 

site: padaria.php

 

quando clicar nesse campo você consegue pegar o nome da tabela e abre o arquivo padaria.php assim ele achar o site.

 

acho que é isso

 

Valter

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

 

fico grato pelas respostas rapidas e que condizem com que estou precisando...

 

realmente creio que essa informação irão me ajudar e muito!

 

LHAlmeida e Dee agradeço a atenção de vocês ambos expuseram soluções bem funcionais, infelizmente tenho pouca experiencia em php e terei que arrumar tempinho pra entender como aplica-las.... creio que não terei muitas dificuldades...

 

uma observação: as paginas dos "clientes" estaria sim, armazenas no meu próprio servidor... por enquanto estou devenvolvendo em casa as paginas ainda não estao hospedadas.

 

Você pode criar um campo em sua tabela de clientes, que chama site nele você grava o nome do site do seu cliente.

 

ex:

 

site: padaria.php

 

quando clicar nesse campo você consegue pegar o nome da tabela e abre o arquivo padaria.php assim ele achar o site.

 

acho que é isso

 

Valter

 

Valter, na verdade eu havia tido essa mesma ideia, criar um campo site que no caso da padaria teria o registro "padaria.php".

 

Criaria um recordset e exbiria os registro dos campos da tabela "clientes", onde um dos campos seria o campo "site" em uma tabela dinamica no dreamweaver cs4.

 

O problema é que eu nao sei como transformar o registro do campo "site" em um link para a pagina "padaria.php" ou "açougue.php" enfim a pagina correspondente ao nome do "cliente".

 

Creio que a solução mais conveniente para o meu problema seria essa mesmo... linkar o resgistro "padaria.php" com a pagina "padaria.php"

 

Obrigado pela atenção e parabéns a comunidade imasters!

 

Bruno Ricardo Rosendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar um campo em sua tabela de clientes, que chama site nele você grava o nome do site do seu cliente.

 

ex:

 

site: padaria.php

 

quando clicar nesse campo você consegue pegar o nome da tabela e abre o arquivo padaria.php assim ele achar o site.

 

acho que é isso

 

Valter

 

Essa seria a forma q eu implementaria também...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz uma funcao para gerar a pagina no formato correto

 

 /**
 * Gera pagina em minuscula, separada por _ e com .php no sulfixo */
function geraPagina($nomeCliente)
{
/* converte pra minusculas */
$pagina = strtolower($nomeCliente);
/* troca espacos em branco por _ */
$pagina = str_replace(" ","_",$nomeCliente);
/* concatena sulfixo .php */
$pagina = $pagina.".php";
/* retorna pagina formatada */
return $pagina;
}

/* dentro do seu while coloque a chamada da file_exists para esta funcao passando o nome do cliente, pois ela retornará a pagina a ser verificada */
while(aki vai a condicao de parada do seu recordset)
{
    if(file_exists(geraPagina($nomeDoCliente)){
       /* faz algo se existe */
    }
}

Uia, vou almoçar, abraço e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal bom... agradeço a todos pela atenção baseado nos codigos do LHalmeida e nos codigos que o dreamweaver gera... vou tentar expressar minha duvidas...

 

bom primeiramente vou mostrar o codigo do dreamweaver, codigo o qual eu compreendo perfeitamente...

 

<table border="1" cellpadding="3" cellspacing="3">
      <tr>
        <td>nome</td>
        <td>descricao</td>
      </tr>
      <?php do { ?>
        <tr>
          <td><?php echo $row_rsListaClientes['nome']; ?></td>
          <td><?php echo $row_rsListaClientes['descricao']; ?></td>
        </tr>
        <?php } while ($row_rsListaClientes = mysql_fetch_assoc($rsListaClientes)); ?>
    </table>

Este codigo esta mostrando o nome e a descrição da empresa em linha na pagina... bom gente eu precisaria de mais um campo que seria um link para a pagina do cliente...

 

Vamos agora ao codigo do LHAlmeida, que modifiquei de acordo com os meus recordsets... não sei se está certo e nem como implementa-lo na pagina =/...

 

<?
	 
/* Gera pagina em minuscula, separada por _ e com .php no sulfixo */
function geraPagina($rsListaClientes['nome'])
{

/* converte pra minusculas */
$pagina = strtolower($rsListaClientes['nome']);
/* troca espacos em branco por _ */
$pagina = str_replace(" ","_",$rsListaClientes['nome']);
/* concatena sulfixo .php */
$pagina = $pagina.".php";
/* retorna pagina formatada */
return $pagina;
}
/* dentro do seu while coloque a chamada da file_exists para esta funcao passando o nome do cliente, pois ela retornará a pagina a ser verificada */
while(aki vai a condicao de parada do seu recordset) /* não entendi mto bem o conteudo desta condição, seria a mesma condição do "do while" do codigo do Dreamweaver? */
{
    if(file_exists(geraPagina($rsListaClientes['nome'])){
       $link = echo "$pagina"                              /* como faço pra fazer da variavel pagina um link? seria assim? rs tenho quase certeza que não, desculpem minha ignorancia :P*/
    }
}?>
gostaria que me ajudassem a unir esses dois codigos, pois como disse sou inexperiente na linguagem e não estou conseguindo...

 

obrigado pela atenção e ate logo ;)

 

PS: Gostaria de pedir desculpas pelos erros de português do meu Post, estava com pressa e não sei edita-lo =/

 

Bruno Ricardo Rosendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... vou tentar ilustrar melhor o que eu preciso implementar...

 

Imagem Postada

 

Na figura acima esta meu repeat region onde gostaria de mostrar o logo nome descrição do cliente bem como um link para a sua respectiva pagina

 

Imagem Postada

 

Nesta ultima imagem onde esta escrito "Clique Aqui para ver a pagina do cliente" é o texto no qual eu queria colocar o link dinamico que apontaria para a pagina de cada cliente que aparecer!

 

Alguem me da uma luz por favor!

 

eu sei que as explicações foram otimas ate agora... porem não sei como implementa-las para a minha necessidade

 

Muito Obrigado

 

Bruno Ricardo Rosendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, vamos lá, vou aproveitar seu codigo também =)

 

Primeira coisa sua funcao deve ficar no topo do arquivo, ou em um arquivo de funcoes.php e pode ser incluido na ou nas paginas que for utilizar a funcao, você alterou o parametro da funcao, não deve fazer isso, lembre-se que as variaveis de uma função é local a funcao e ela não consegue

acessar variaveis de fora dela (exceto as globais, mas ai é um outro caso não vamos entrar no mérito), abaixo como deve ficar sua funcao (exatamente).

 

/* Gera pagina em minuscula, separada por _ e com .php no sulfixo
   a variavel na funcao pode chamar xuxu ou abobrinha que não vai afetar variaveis externas a funcao, o importante é que o parametro seja passado
   corretamente, no caso o seu parametro seria o  $rsListaClientes['nome'] */
    function geraPagina($nomeCliente)
    {
         /* $nomeCliente é local a esta funcao, e nesse momento tem o valor de $rsListaClientes['nome'] */
         /* converte pra minusculas */
         $pagina = strtolower($nomeCliente);
         /* troca espacos em branco por _ */
         $pagina = str_replace(" ","_",$pagina);
         /* concatena sulfixo .php */
         $pagina = $pagina.".php";
        /* retorna pagina formatada */
        return $pagina;
}
/* lembre-se de colocar a funcao no topo do arquivo ou no arquivo de funcoes */

 


<table border="1" cellpadding="3" cellspacing="3">
      <tr>
        <td>nome</td>
        <td>descricao</td>
      </tr>
      <?php do { ?>
        <tr>
          <td><?php echo $row_rsListaClientes['nome']; ?></td>
          <td><?php echo $row_rsListaClientes['descricao']; ?></td>
        </tr>
        <tr>
          <td collspan="2"><a href="<?php echo geraPagina($row_rsListaClientes['nome']); ?>" target="_blank">Ver a página do Cliente</td>
        </tr>
        <?php } while ($row_rsListaClientes = mysql_fetch_assoc($rsListaClientes)); ?>
    </table>

Acho que agora seu link vai aparecer =)

Tudo que for utilizar varias vezes em suas páginas, dê preferência para criar funções para melhorar o reaproveitamento do seu codigo.

Depois de se acostumar com elas, aí você pode começar a usar orientação a objeto, seu código vai ser sempre mais produtivo e de fácil manutenção.

 

Abraço e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, vamos lá, vou aproveitar seu codigo também =)

 

Primeira coisa sua funcao deve ficar no topo do arquivo, ou em um arquivo de funcoes.php e pode ser incluido na ou nas paginas que for utilizar a funcao, você alterou o parametro da funcao, não deve fazer isso, lembre-se que as variaveis de uma função é local a funcao e ela não consegue

acessar variaveis de fora dela (exceto as globais, mas ai é um outro caso não vamos entrar no mérito), abaixo como deve ficar sua funcao (exatamente).

 

/* Gera pagina em minuscula, separada por _ e com .php no sulfixo
   a variavel na funcao pode chamar xuxu ou abobrinha que não vai afetar variaveis externas a funcao, o importante é que o parametro seja passado
   corretamente, no caso o seu parametro seria o  $rsListaClientes['nome'] */
    function geraPagina($nomeCliente)
    {
         /* $nomeCliente é local a esta funcao, e nesse momento tem o valor de $rsListaClientes['nome'] */
         /* converte pra minusculas */
         $pagina = strtolower($nomeCliente);
         /* troca espacos em branco por _ */
         $pagina = str_replace(" ","_",$pagina);
         /* concatena sulfixo .php */
         $pagina = $pagina.".php";
        /* retorna pagina formatada */
        return $pagina;
}
/* lembre-se de colocar a funcao no topo do arquivo ou no arquivo de funcoes */

 


<table border="1" cellpadding="3" cellspacing="3">
      <tr>
        <td>nome</td>
        <td>descricao</td>
      </tr>
      <?php do { ?>
        <tr>
          <td><?php echo $row_rsListaClientes['nome']; ?></td>
          <td><?php echo $row_rsListaClientes['descricao']; ?></td>
        </tr>
        <tr>
          <td collspan="2"><a href="<?php echo geraPagina($row_rsListaClientes['nome']); ?>" target="_blank">Ver a página do Cliente</td>
        </tr>
        <?php } while ($row_rsListaClientes = mysql_fetch_assoc($rsListaClientes)); ?>
    </table>

Acho que agora seu link vai aparecer =)

Tudo que for utilizar varias vezes em suas páginas, dê preferência para criar funções para melhorar o reaproveitamento do seu codigo.

Depois de se acostumar com elas, aí você pode começar a usar orientação a objeto, seu código vai ser sempre mais produtivo e de fácil manutenção.

 

Abraço e boa sorte

 

Realmente eu não tenho palavras para agradecer LHalmeida, muito obrigado mesmo...

 

funcionou perfeitamente!!

 

e ainda tirou algumas duvidas sobre a linguagem... perfeito!

 

Mais uma vez mto obrigado...

 

Bruno Ricardo Rosendo =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom a função funciona perfeitamente... dentro de cada pagina...

 

porem gostaria de utilizar a função dentro de um arquivo de funções... por exemplo "funcoes.php"

 

e chamar ela em cada pagina ao invez de copiar a função... pois cada pagina terá um recordset diferente...

 

tentei colocar

<? include("includes/funcoes.php"); /* que é o caminho para função /* ?>
e chamar a função gerapagina normalmente como se a função estivesse na pagina, mas não deu certo =/

 

alguem pode me dar uma dica?

 

mto obrigado

 

 

Bruno Ricardo Rosendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu chamei a função assim...

 

<td align="left" valign="top" bgcolor="#FBEEC8"> <a href="<?php echo geraPagina($row_rsAcademias['nome']); ?>" target="_blank">Clique aqui para mais informações!</a></td>

aparece esse erro aqui na vizualização gente...

 

Fatal error: Call to undefined function geraPagina() in C:\wamp\www\academias.php on line 704

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é de função indefinida. Confira se a função geraPagina está dentro do arquivo funcoes.php e se o include está antes de tentar utilizar.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro é de função indefinida. Confira se a função geraPagina está dentro do arquivo funcoes.php e se o include está antes de tentar utilizar.

 

Carlos Eduardo

 

o arquivo "funcoes.php" esta assim:

 

<?
/* Gera pagina em minuscula, separada por _ e com .php no sulfixo
   a variavel na funcao pode chamar xuxu ou abobrinha que não vai afetar variaveis externas a funcao, o importante é que o parametro seja passado
   corretamente, no caso o seu parametro seria o  $rsListaClientes['nome'] */
    function geraPagina($nomeCliente)
    {
         /* $nomeCliente é local a esta funcao, e nesse momento tem o valor de $rsListaClientes['nome'] */
         /* converte pra minusculas */
         $pagina = strtolower($nomeCliente);
         /* troca espacos em branco por _ e ç por c*/
         $pagina = str_replace(" ","_",$pagina);
         $pagina = str_replace("ç","c",$pagina);
		 /* concatena sulfixo .php */
		 $pagina = $pagina.".php";
        /* retorna pagina formatada */
        return $pagina;
}
/* lembre-se de colocar a funcao no topo do arquivo ou no arquivo de funcoes */
?>

o include esta assim no inicio do documento!

 

<?php
include("includes/funcoes.php");
?>

antes ate mesmo de criar a conecção com a tabela... mas o problema tbm não é esse pois ja tentei colocar antes do inicio do documento html e naum deu certo =/

 

eu chamo a função assim:

 

<td align="left" valign="top" bgcolor="#FBEEC8"> <a href="<?php echo geraPagina($row_rsAcademias['nome']); ?>" target="_blank">Clique aqui para mais informações!</a></td>

Compartilhar este post


Link para o post
Compartilhar em outros sites

caramba carlos era isso mesmo!! mto obrigado... boberinha neh?

 

pessoal mas eu enrosquei de novo... precisaria melhorar essa função com o file_exist e nao estou conseguindo de jeito nenhum

 

por exemplo IF a variavel $pagina existir no servidor... o link deveria funcionar normalmente, ELSE o link teria que apontar para "cliente_sem_pagina.php"

 

tentei fazer isso de tdo qdo eh jeito e nao consegui...

 

 

alguem tem alguma ideia?

 

caramba carlos era isso mesmo!! mto obrigado... boberinha neh?

 

pessoal mas eu enrosquei de novo... precisaria melhorar essa função com o file_exist e nao estou conseguindo de jeito nenhum

 

por exemplo IF a variavel $pagina existir no servidor... o link deveria funcionar normalmente, ELSE o link teria que apontar para "cliente_sem_pagina.php"

 

tentei fazer isso de tdo qdo eh jeito e nao consegui...

 

 

alguem tem alguma ideia?

 

Consegui Galera!!!

 

VLW..

 

mto obrigado a todos...

 

Bruno Ricardo Rosendo

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.