Jump to content
Fórum Script Brasil
  • 0

(Resolvido) $variavel


n0visk

Question

Olá pessoal, já tinha começado a mecher com php e mysql faz um tempo, só que acabei parando e estou voltando agora.

Minha duvida e a seguinte:

Eu tenho uma pagina que tenho 10 clientes cadastrados, e quando eu clicar em 1 deles, quero ver detalhes do seu cadastro.

fiz da seguinte maneira, cada um tem lá um link para uma pagina "individual.php", ai nessa pagina eu coloco para buscar no banco de dados as informacoes do cliente com a $id que eu cliquei.

mais ai esta a duvida. como vou pegar o numero do $id do cliente que eu cliquei para ver as especificaçoes de seu respectivo?

eu tenho a pagina tudo certinha, só falta mesmo saber identificar o numero do ID do cliente que eu quero abrir. o problema é eu não conseguir passar o ID do cliente para a outra pagina que vai abrir contendo os dados do cliente.

isso tem q fazer por cookies ou sesions? ou sei lá como.. hehehe...

qm puder ajudar eu agradeço.

se não entenderam meu problema eu tento explicar melhor ou posto meu codigo ai.

vlw galera,

abraço

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

ESerra obrigado pela ajuda.

eu tentei fazer da uma maneira aqui, mais n deu muito certo, deu um erro: syntax error, unexpected T_FOR, expecting T_CASE or T_DEFAULT or '}'

vou postar meu codigo

if( isset($_GET['id']) ){
      switch( $_GET['id']){
        for($i=1;$i<=$rows;$i++){
          case $i:
            $id=$i;
            include "individual.php";
            break;
        }
        /*case 1:
             $id=1;
             include "individual.php";
             break;
        case 2:
             $id=2;
             include "individual.php";
             break;
        case 3:
             $id=3;
             include "individual.php";
             break;
        case 4:
             $id=4;
             include "individual.php";
             break;
        case 5:
             $id=5;
             include "individual.php";
             break;
        case 6:
             $id=6;
             include "individual.php";
             break;
        case 7:
             $id=7;
             include "individual.php";
             break;*/

      }
    }
esse codigo é para listar todos os clientes.
for($i=0;$i<$rows;$i++){
      $id = mysql_result($res,$i,"id");
      $nome = mysql_result($res,$i,"nome");
      if($nome == null ) $nome = "-";
      $nome_empresa = mysql_result($res,$i,"nome_empresa");
      if($nome_empresa == null ) $nome_empresa = "-";
      $site = mysql_result($res,$i,"site");
      if($site == null ) $site = "-";
      $email = mysql_result($res,$i,"email");
      if($email == null ) $email = "-";
      $data_pedido = mysql_result($res,$i,"data_pedido");
      if($data_pedido == null ) $data_pedido = "-";
      $obs = mysql_result($res,$i,"obs");
      if($obs == null ) $obs = "-";
      echo "<tr><td>$id</td><td><a href=\"vercliente.php?id=$id\">$nome</a></td><td>$nome_empresa</td><td>$site</td><td>$email</td><td>$data_pedido</td><td width=\"200px\" height=\"auto\">$obs</td></tr>";
    }

eu cheguei ateh ai, mais n consigo usar o for dentro do switch. se eu n posso fazer isso, como vou usar o query string? vou ter q colocar 1 case para cada cliente novo cadastrado?

to meio perdido aqui, to meio perdido aqui.

agradeço desde já

abraço.

Link to comment
Share on other sites

  • 0

Pelo visto você não entendeu a lógica da coisa, deixa eu mastigar pra você.

Primeiro:

for($i=0;$i<$rows;$i++){
      $id = mysql_result($res,$i,"id");
      $nome = mysql_result($res,$i,"nome");
      if($nome == null ) $nome = "-";
      $nome_empresa = mysql_result($res,$i,"nome_empresa");
      if($nome_empresa == null ) $nome_empresa = "-";
      $site = mysql_result($res,$i,"site");
      if($site == null ) $site = "-";
      $email = mysql_result($res,$i,"email");
      if($email == null ) $email = "-";
      $data_pedido = mysql_result($res,$i,"data_pedido");
      if($data_pedido == null ) $data_pedido = "-";
      $obs = mysql_result($res,$i,"obs");
      if($obs == null ) $obs = "-";
      echo "<tr><td>$id</td><td><a href=\"vercliente.php?id=$id\">$nome</a></td><td>$nome_empresa</td><td>$site</td><td>$email</td><td>$data_pedido</td><td width=\"200px\" height=\"auto\">$obs</td></tr>";
    }
Quando você for listar vários dados vindos do BD utiliza WHILE:
//Note que $sql guarda a query feita no BD.
while($x = mysql_fetch_assoc($sql)){
/*
Aqui você vai resgata da seguinte forma, se a coluna se chama nome então você deve usar:
$x['nome']

Se a coluna se chama email então use:
$x['email']

etc...
Vou usar o operador ternário para em uma linha verificar se está vazio ou não e já atribuir o valor a variável
Mais informações sobre o operador ternário:
http://www.php.net/manual/pt_BR/language.operators.comparison.php
*/
      $id = $x['id'];
      $nome = (empty($x['nome']))?'-':$x['nome'];
      $email = (empty($x['email']))?'-':$x['email'];
      echo "<tr><td>$id</td><td><a href=\"vercliente.php?id=$id\">$nome</a></td><td>$nome_empresa</td><td>$site</td><td>$email</td><td>$data_pedido</td><td width=\"200px\" height=\"auto\">$obs</td></tr>";
    }
Segunda parte:
if( isset($_GET['id']) ){
      switch( $_GET['id']){
        for($i=1;$i<=$rows;$i++){
          case $i:
            $id=$i;
            include "individual.php";
            break;
        }
        /*case 1:
             $id=1;
             include "individual.php";
             break;
        case 2:
             $id=2;
             include "individual.php";
             break;
        case 3:
             $id=3;
             include "individual.php";
             break;
        case 4:
             $id=4;
             include "individual.php";
             break;
        case 5:
             $id=5;
             include "individual.php";
             break;
        case 6:
             $id=6;
             include "individual.php";
             break;
        case 7:
             $id=7;
             include "individual.php";
             break;*/

      }
    }
Pare durante 1/2 segundo pra pensar: Qual utilidade disso que você fez? Nenhuma, você resgata o valor do ID ai depois atribui o valor de novo... totalmente sem lógica. Na página vercliente.php basta você colocar:
$id = (isset($_GET['id']))?$_GET['id']:NULL;

Pronto ai você faz query baseado no $id.

Link to comment
Share on other sites

  • 0

Bom, ESerra primeiramente gostaria de agradecer a sua ajuda e atençao.

Ali naquele "for" dentro do "switch", os CASE`s estao comentados, eu testei se conseguiria fazer atravez de um for, bom mais isso não vem ao caso.

eu andei estudando o que você postou para mim. e ainda tenho q estudar mais sobre isso hehe, fiquei ateh agora tentando resolver uns problemas q apareceram, pois parece q tem horas q o $id retorna um id, mais tem horas q parece q ele não retorna nada. e da ateh erro quando eu chamo o mysql_query("SELECT * FROM cliente WHERE id = $id",$conexao); . e quando dava esse erro eu ia conferir o valor dentro de $id, e não tinha nada nele. mais tem horas que ele funciona. enfim, to ficando loco já com isso, mais bola pra frente.

o problema agora é o seguinte, ficou assim meu codigo:

include ("todosclientes.php"); // aqui tem a primeira parte do codigo.
  $id = (isset($_GET['id']))?$_GET['id']:NULL; // pega o $id desejado.
  include ("individual.php"); // e aqui ele abre o cliente que eu cliquei no $id que eu desejava.

a duvida é, como eu faço para quando eu clicar em um cliente, ele pegar o ID e "apagar" a parte de todosclientes.php e só mostrar a parte individual.php? ele mostra a lista de todos os clientes e dpois embaixo mostra os detalhes do que escolhi, queria que mostresse só o cliente desejado.

desculpe a confusao ai, mais ainda to muito leigo nesse assunto.

Obrigado mais uma vez.

Abraço.

Link to comment
Share on other sites

  • 0

Bom, você ainda não entendeu a lógica.

Você não precisa ficar dando include de páginas!

Pelo que eu entendi do seu script a página 'todosclientes.php' é a que vai listar os usuários, então nela você vai ter os links, os links vão apontar para a página 'individual.php' e nessa página sim, você deve pegar o ID e etc...

Quanto ao problema do ID, tenha mais atenção:

$id = (isset($_GET['id']))?$_GET['id']:NULL;

Para que você acha que serve aquele NULL ali? Aliás, você sabe o que significa NULL?

Vou mudar para:

$id = (isset($_GET['id']))?$_GET['id']:FALSE;

Assim você coloca:

...
$id = (isset($_GET['id']))?$_GET['id']:FALSE;
if($id){
//Aqui o código pra buscar no banco de dados...
}

Então em resumo a coisa tem que seguir a seguinte lógica:

Na página todosclientes.php você lista os cliente com os links para a página individual.php, os links deverão ser:

individual.php?id=xxx (onde xxx é o id do cara), na página individual.php você resgata o id ($id = (isset....)) e ai faz a query.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...