1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Voltar á pagina dps da pesquisa!

Discussão em 'Web Development' iniciada por iGMBroken, 14 de Junho de 2007. (Respostas: 11; Visualizações: 841)

  1. iGMBroken

    iGMBroken Power Member

    OK... ca estou eu mais uma vez para exprimir uma duvida na qual sei que me ajudaram certamente como teem feito.

    a questão e a seguinte:

    Tenho uma pagina de pesquisa na qual eu faço a pesquisa por uma palavra qualquer ele encontra os campos e apresenta tudo, id, fornecedor etc...

    depois se fizer apagar ele faz uma pergunta em java "ah e tal... Deseja eliminar este iD?"

    se cancelar, muito bem... nao faz nada e deixa se tar na pagina... caso contrario eu diga "ok" entao ele elimina o id e vai para a página de estrutura.php e eu keria mesmo era ke volta-se á pesquisa que fiz.

    fico a espera
     
  2. p3dro

    p3dro Power Member

    tens de passar as variáveis que são necessárias à construção da tua "estrutura", pelo teu outro tópico serão: ordem e palavra, por ex:

    PHP:
    <a href='eliminar.php?ordem=".$_GET["ordem"]."&palavra=".$_GET["palavra"]."'>Remover Registo</a>
    na página eliminar.php (como conselho deverás também ter uma confirmação, pk a confirmação por javascript poderá ser facilmente ultrapassável, caso uses não te esqueças de fazer transportar tbém as variáveis "ordem" e "palavra") usas as instrução(ões) sql necessária(s) para eliminar e usas a função header com as variáveis que passaste e que são necessárias para re-construir a tua estrutura, por ex:

    PHP:
    header("Location: estrutura.php?ordem=".$_GET["ordem"]."&palavra=".$_GET["palavra"]);
    toma só em atenção que não poderás usar o header após envio de informação para o output, ou seja deverá ser usado logo no inicio do script (não necessariamente na 1ª linha :)), por ex:

    PHP:
    //fazer connect à bd ....
    mysql_query("delete from tabela where id='$id'") or die(mysql_error());
    //fechar connection
    //tudo removido, então [I]redirecionar[/I] browser para a estrutura.php
    header("Location: estrutura.php?ordem=".$_GET["ordem"]."&palavra=".$_GET["palavra"]);
    vê se te ajuda em alguma e tenta adaptar às tuas necessidades
     
  3. msdevweb

    msdevweb Power Member

    Bem, pelo que eu percebi jä tens tudo feito... certo? mas ao eleminares um registo o utilizador é redericionado para a pagina estrutura.php nao e?

    isso nao é dificil se ja tens a instruçao para enviar o user para a estrutura.php so tens que alterar essa instruçao para dirigir o user para, por exmplo, pesquisa.php?por=nom&nom=zeze
    ...e apresenta os dados da pesquisa de novo (ja actualizados)... embora passar as variaveis pelo link nao seja eticamente correcto podes esperimentar... uma alternativa ée criares input fields hidden e fazer o submit à procura de novo assim que o user elimina um registo.


    se quiseres apenas voltar à pagina anterior, podes tambem fazer uma funçao em javascript com history.back();, mas nao te aperecera ja a procura com o campo eleminado, para aparecer ja actualizado, podes fazer um refresh à pagina tambem na mesma funçao, mas pedir-te-a para submeteres os dados de novo... por isso o mais indicado seria como expliquei na primera hipotese.

    seria isto? hum...

    abraço
     
    Última edição: 15 de Junho de 2007
  4. iGMBroken

    iGMBroken Power Member

    a minha ideia n é ir para a estrutura.php(pois essa contem todos os registos).

    eu quero e ke dps da pesquisa ele apresenta os resultados...dps faço apagar e ele pergunta... eu digo ok podes apagar....ele apaga....»»»»e volta a mesma pesquisa onde tava.

    imagina ke tenho 100 registos, mas quero apenas os que começam por F, n vou cada pesquisa so para eliminar um registo, quero que ele mostre todos por "F" e dps eu diga eliminas 1 mas... voltas á mesma pesquisa.

    ......................... Exemplo...............................
    [​IMG]

    1º aqui fazemos a pesquisa


    [​IMG]

    2º aqui pode ver se o campo que quero eliminar

    [​IMG]

    3º aqui podemos ver ja dps de ele eliminar o campo, volta á pesquisa que tinha feito ja sem o que decidi eliminar.

    --------------------------------------------------------
    help plz :D

    actualmente da me este erro

    Notice: Undefined index: ordem in c:\programas\easyphp1-8\www\workmedia\eliminarprc.php on line 12

    Warning: Cannot modify header information - headers already sent by (output started at c:\programas\easyphp1-8\www\workmedia\eliminarprc.php:12) in c:\programas\easyphp1-8\www\workmedia\eliminarprc.php on line 12

    que corresponde á isto

    header("Location: prc2.php?ordem=".$_GET["ordem"]."&palavra=".$_GET["palavra"]);

    no entanto o codigo do eliminarprc.php é :
    PHP:
    <?php
      mysql_connect
    ("localhost","root","");
      
    $id $_GET['id'];
           
    $sql "DELETE from hardware where id=$id";
           
    $campo $_GET['campo'];
           
    $palavra $_GET['palavra'];
        
         
    $resultado mysql_db_query ("chardware",$sql);
          
    $executar_query mysql_query($sql) or die (mysql_error());
    ?>
    <?php 
      header
    ("Location: prc2.php?ordem=".$_GET["ordem"]."&palavra=".$_GET["palavra"]);  
    ?>
    mais uma vez obrigado, abraços e aguardo resposta :D
     
    Última edição: 15 de Junho de 2007
  5. p3dro

    p3dro Power Member

    vê se assim elimina o Undefined index e consequentemente o warning headers already sent by

    PHP:
      mysql_connect("localhost","root","");
      
    $id $_GET['id'];
      
    $sql "DELETE from hardware where id=$id";
      
    $campo $_GET['campo'];
      
    $palavra $_GET['palavra'];
      
    $ordem=$_GET['ordem'];
        
      
    $resultado mysql_db_query ("chardware",$sql);
      
    $executar_query mysql_query($sql) or die (mysql_error());
      
    header("Location: prc2.php?ordem=$ordem&palavra=$palavra);
     
  6. iGMBroken

    iGMBroken Power Member

    PHP:
    <?php
      mysql_connect
    ("localhost","root",""); 
      
    $id $_GET['id']; 
      
    $sql "DELETE from hardware where id=$id"
      
    $campo $_GET['campo']; 
      
    $palavra $_GET['palavra']; 
      
    $ordem=$_GET['ordem']; 
     
      
    $resultado mysql_db_query ("chardware",$sql); 
      
    $executar_query mysql_query($sql) or die (mysql_error()); 
      
    header("Location: prc2.php?ordem=$ordem&palavra=$palavra);  
    ?>
    pah nao diz me

    "Parse error: parse error in c:\programas\easyphp1-8\www\workmedia\eliminarprc.php on line 2"

    entao fui ver o código e vi que faltava ali no fim as » " « e coloquei

    então ficou

    PHP:
    <?php
      mysql_connect
    ("localhost","root",""); 
      
    $id $_GET['id']; 
      
    $sql "DELETE from hardware where id=$id"
      
    $campo $_GET['campo']; 
      
    $palavra $_GET['palavra']; 
      
    $ordem=$_GET['ordem']; 
     
      
    $resultado mysql_db_query ("chardware",$sql); 
      
    $executar_query mysql_query($sql) or die (mysql_error()); 
      
    header("Location: prc2.php?ordem=$ordem&palavra=$palavra");  
    ?>
    e ele diz

    Notice: Undefined index: ordem in c:\programas\easyphp1-8\www\workmedia\eliminarprc.php on line 7

    Warning: Cannot modify header information - headers already sent by (output started at c:\programas\easyphp1-8\www\workmedia\eliminarprc.php:7) in c:\programas\easyphp1-8\www\workmedia\eliminarprc.php on line 11
    -------------------------



    aparte disto eu tentei de outra forma, tipo pk ordem ?

    nao e necessário pois

    $palavra= form onde tem a palavra
    $campo = list box

    PHP:
    <?php
      mysql_connect
    ("localhost","root",""); 
      
    $id $_GET['id']; 
      
    $sql "DELETE from hardware where id=$id"
      
    $campo $_GET['campo']; 
      
    $palavra $_GET['palavra']; 
     
     
      
    $resultado mysql_db_query ("chardware",$sql); 
      
    $executar_query mysql_query($sql) or die (mysql_error()); 
      
    header("Location: prc2.php?palavra=$palavra&campo=$campo");  
    ?>
    e ele entra na página e diz assim:

    "Coluna 'c' desconhecida em 'where clause'"
    LOL claro que fiquei a olhar para isto pk n percebi
     
    Última edição: 15 de Junho de 2007
  7. p3dro

    p3dro Power Member


    pois, aquelas " não reparei qdo submeti o post }>

    tenta fazer desta maneira:

    PHP:
      mysql_connect("localhost","root",""); 
      
    $id $_GET['id']; 
      
    $sql "DELETE from hardware where id='$id'"
      
    $campo = (isset($_GET["campo"]))?$_GET["campo"]:""
      
    $palavra = (isset($_GET["palavra"]))?$_GET["palavra"]:""
     
      
    $resultado mysql_db_query ("chardware",$sql); 
      
    $executar_query mysql_query($sql) or die (mysql_error()); 
      
    header("Location: prc2.php?palavra=$palavra&campo=$campo");
    quanto ao erro de sql ... deves estar a escrever algum campo que não existe ou a formar mal a instrução sql ...
     
  8. iGMBroken

    iGMBroken Power Member

    lol ah pouco dizia "C" agr diz "i"....

    Coluna 'i' desconhecida em 'where clause'

    com este codigo:

    PHP:
    <?php
     mysql_connect
    ("localhost","root","");  
      
    $id $_GET['id'];  
      
    $sql "DELETE from hardware where id='$id'";  
      
    $campo = (isset($_GET["campo"]))?$_GET["campo"]:"";  
      
    $palavra = (isset($_GET["palavra"]))?$_GET["palavra"]:"";  
      
      
    $resultado mysql_db_query ("chardware",$sql);  
      
    $executar_query mysql_query($sql) or die (mysql_error());  
      
    header("Location: prc2.php?palavra=$palavra&campo=$campo");  
    ?> 
    que estranho nunca vi isto antes :s
     
  9. p3dro

    p3dro Power Member


    não percebi, mas esse erro de sql dá-te ao eliminar o registo ou ao construir novamente a estrutura? faz "echo" à instrução sql e vê qual é o seu conteúdo ...

    tens a certeza que estás a "passar" e "buscar" bem o nome das variáveis?
     
  10. iGMBroken

    iGMBroken Power Member

    acho que sim vou recapitular

    PHP:
     <form name="form1" method="get" onClick="return ConfirmarRemover();" action="eliminarprc.php?id=<? $_GET['id'] ?>">
            <input name="id" type="hidden"  value="<? echo $linha['id']?>">
            <input name="campo" type="hidden"  value="<? echo $campo['campo']?>">
            <input name="palavra" type="hidden"  value="<? echo $palavra['palavra']?>">
            <input name="ordem" type="hidden"  value="<? echo $ordem['ordem']?>">
            <input  type="submit"  value="Apagar">
          </form> 
    este é no prc, e basicamente uma estrutura que vai mostrar o que pesquisamos.

    esse form faz parte do eliminar que lá está e do outro lado no eliminarprc.php ele vai receber o seguinte:

    PHP:
    <?php
     mysql_connect
    ("localhost","root","");  
      
    $id $_GET['id'];  
      
    $sql "DELETE from hardware where id='$id'";  
      
    $campo = (isset($_GET["campo"]))?$_GET["campo"]:"";  
      
    $palavra = (isset($_GET["palavra"]))?$_GET["palavra"]:"";  
     
      
    $resultado mysql_db_query ("chardware",$sql);  
      
    $executar_query mysql_query($sql) or die (mysql_error());  
     
     
      
    header("Location: prc2.php?palavra=$palavra&campo=$campo");  
    ?> 
    falta algumas coisa?

    btw tentei umas alterações e o erro vem da ultima linha $campo

    PHP:
    <?php
      mysql_connect
    ("localhost","root","");
      
    $id $_GET['id'];
           
    $sql "DELETE from hardware where id=$id";
      
    $campo $_GET["campo"];  
      
    $palavra $_GET["palavra"]; 
      
         
    $resultado=mysql_db_query ("chardware",$sql);
          
    $executar_query mysql_query($sql) or die (mysql_error());
      
    ?>
    <?
    header('location:prc2.php?palavra=$palavra&campo=$campo');
    ?>
     
    Última edição: 15 de Junho de 2007
  11. p3dro

    p3dro Power Member

    no <form ... action="eliminarprc.php?id=<? $_GET['id'] ?> ..., estás a enviar o id pk? tens lá um campo hidden k já faz isso, mas mesmo assim acho k tens de fazer action="eliminarprc.php?id=<? echo $_GET['id'] ?>


    parece-me que não estás a passar bem as variáveis no form:
    <input name="campo" type="hidden" value="<? echo $campo['campo']?>">
    <input name="palavra" type="hidden" value="<? echo $palavra['palavra']?>">
    <input name="ordem" type="hidden" value="<? echo $ordem['ordem']?>">

    no value desses 3 campos não será $_GET["campo"]; $_GET["palavra"]; $_GET["ordem"] respectivamente? (ou outro kker nome que tenhas dado a essas variáveis)

    tu tens a opção para exibir mensagens de erro Notice activas, por isso terás de ter em atenção qdo vais "buscar" as variáveis, sejam elas $_GET ou $_POST, terás de usar sempre o isset para garantir que não tens erros desse tipo.
     
    Última edição: 15 de Junho de 2007
  12. iGMBroken

    iGMBroken Power Member

    ok esta tudo corrigido, btw vou colocar aki o codigo do ficheiro pcr2.php para ser mais facil, aqui vai:


    PHP:
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
      <script type="text/javascript"> 
        function ConfirmarRemover(){ 
          return confirm("Deseja remover este registo?"); 
        } 
        </script> 
    </head>
    <body>
           <p>
             <?php
        
    include 'principal.php'
        
    ?>
             <br>
             <?
       require("connect.php");
     
        $campo = $_REQUEST['campo'];
        $palavra = $_REQUEST['palavra'];
     
        $sql = "SELECT * FROM hardware WHERE $campo LIKE '%$palavra%'";
     
        $recordset = mysql_query( $sql , $db ) or die( mysql_error());   
     
     
         if(mysql_num_rows($recordset)==0){ 
         echo "Não foi encontrado nenhum registo na base de dados"; 
       } 
       else{ 
         $row_recordset = mysql_fetch_assoc( $recordset );     
         do {               
         } while ( $row_recordset = mysql_fetch_assoc( $recordset )); 
       }  
       ?>
    </p>
           <table class="estrutura">
      <TR align="center">
        <TD width="33" height="23"><span class="style3"><strong>ID</strong></span></td>
        <TD width="146" height="23"><span class="style3"><strong>Caracteristicas</strong></span></td>
        <TD width="80" height="23"><span class="style3"><strong>Tipo</strong></span></td>
        <TD width="65" height="23"><span class="style3"><strong>Quantidade</strong></span></td>
        <TD width="86" height="23"><span class="style3"><strong>Data</strong></span></td>
        <TD width="106" height="23"><span class="style3"><strong>Estado</strong></span></td>
        <TD width="76" height="23"><span class="style3"><strong>Local</strong></span></td>
        <TD width="76" height="23"><span class="style3"><strong>Garantia</strong></span></td>
     <TD width="169" height="23"><span><strong>Fornecedor</strong></span></TD>
        <TD height="23" colspan="2"><span class="style3"><strong>Opções</strong></span></td>
      </TR>
      <? 
        $query = "SELECT id,caracteristicas,tipo,quantidade,data,estado,local,garantia,fornecedor FROM hardware WHERE $campo LIKE '%$palavra%'";
     
          // Ordenar?
       if (isset ($_GET['ordem']) ) $query .= " ORDER BY " . mysql_real_escape_string($_GET['ordem']);
       $resultado = mysql_query($query,$db);
       if ($resultado) 
        {
        while ($linha = mysql_fetch_array($resultado)) {
      ?>
      <?
       $query = "SELECT id,caracteristicas,tipo,quantidade,data,estado,local,garantia,fornecedor FROM hardware";
      ?>
      <TR align="center" valign="middle">
        <TD><? echo $linha['id']?></td>
        <Td><? echo $linha['caracteristicas']?></td>
        <TD><? echo $linha['tipo']?></td>
        <Td><? echo $linha['quantidade']?></Td>
        <TD><? echo $linha['data']?></Td>
        <TD><? echo $linha['estado']?></Td>
        <TD><? echo $linha['local']?></Td>
        <TD><? echo $linha['garantia']?></Td>
        <TD><? echo $linha['fornecedor']?></Td>
        <TD width="60"><form name="form1" method="post" action="alter1.php">
            <input name="id" type="hidden"  value="<? echo $linha['id']?>">
            <input name="caracteristicas" type="hidden"  value="<? echo $linha['caracteristicas']?>">
            <input name="tipo" type="hidden"  value="<? echo $linha['tipo']?>">
            <input name="quantidade" type="hidden"  value="<? echo $linha['quantidade']?>">
            <input name="data" type="hidden"  value="<? echo $linha['data']?>">
            <input name="estado" type="hidden"  value="<? echo $linha['estado']?>">
            <input name="local" type="hidden"  value="<? echo $linha['local']?>">
            <input name="garantia" type="hidden"  value="<? echo $linha['garantia']?>">
            <input name="fornecedor" type="hidden"  value="<? echo $linha['fornecedor']?>">
            <input  type="submit"  value="Editar">
          </form></TD>
        <TD width="60">
     <form name="form1" method="get" onClick="return ConfirmarRemover();" action="eliminarprc.php?id=<? echo $_GET['id'] ?> ?>">
            <input name="id" type="hidden"  value="<? echo $linha['id']?>">
            <input name="campo" type="hidden"  value="<? $_GET["campo"]; ?>">
            <input name="palavra" type="hidden"  value="<? $_GET["palavra"]; ?>">
            <input name="ordem" type="hidden"  value="<? $_GET["ordem"]; ?>">
            <input  type="submit"  value="Apagar">
          </form>   </TD>
      </TR>
      <?
      }
      }
      ?>
    </table>
     <br />
                <?php
       
    include 'footer.php'
          
    ?>
     
    </body>
    </html>
    dps o elimnar.php

    ---------------------
    PHP:
    <?php
      mysql_connect
    ("localhost","root","");
      
    $id $_GET['id'];
           
    $sql "DELETE from hardware where id=$id";
        
         
    $resultado=mysql_db_query ("chardware",$sql);
          
    $executar_query mysql_query($sql) or die (mysql_error());
      
    ?>
    <?
    header('location:estrutura.php');
    ?>
     

Partilhar esta Página