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

É Possivel Editar Todos os Campos duma tabela ao mesmo tempo ?

Discussão em 'Web Development' iniciada por _NoDe_, 5 de Junho de 2007. (Respostas: 6; Visualizações: 1181)

  1. _NoDe_

    _NoDe_ [email protected] Member

    A ideia é o seguinte:

    Tenho uma tabela (Tinteiros) com os campos :
    -Marca
    -RefTinteiro
    -RefImpressora
    -Preço
    -Quantidade

    Todos os campos estão preenchidos excepto o campo quantidade, o objectivo seria apresentar a tabela toda ( mesmo que fosse 100 registos ) , e no campo quantidade fosse permitido inserir a quantidade desejada , e carregando num botão actualizar (por exemplo) ele adiciona-se a tabela os valores de quantidade , mas em vez de ser um a um , seria aonde eu muda-se o valor de 0 para diferente 0 ele actualiza-se todos os tinteiros.


    É possível ?

    Se for possível não estou a ver como fazer , todas as ajudas serão bem vindas .


    Abraços Malta
     
  2. Mavors

    Mavors Power Member

    Estás a fazer isso em que linguagem?

    Asp, php, jsp?

    Mas sim é possivel, é só fazeres um ciclo para veres se o valor do campo é diferente do inicial e se sim, mandar na query para a base de dados. Acho que em asp é possivel fazer isso sem meteres uma linha de código sequer, aquilo já tem os métodos de update em cada row. Não me recordo é se faz post por row ou só no final...
     
  3. mascker

    mascker Power Member

    Estás a falar disto
    Código:
    UPDATE tabela SET quantidade='QUANTIDADE' WHERE quantidade='0'
    
    Isto vai actualizar TODOS os valores que estão a zero para o valor que tu meteres

    Ou tu queres meter valores diferentes para cada tinteiro mas actualizar tudo de uma só vez???

    Se for assim crias um array e depois actualizas na base de dados, mas se te poderes explicar melhor...

    Saudações
     
  4. _NoDe_

    _NoDe_ [email protected] Member

    é exactamente isso , criar um array com os valores das quantidades e depois na pagina seguinte enfiar os valores todos na base de dados.




    Fiz isto mas na resulta ( sou novato nisto ), alguem pode me ajudar ? cumpts
     
  5. p3dro

    p3dro Power Member

    supondo que tens uma tabela com esta estrutura:
    - tinteiros(id, Cotação, Marca, quantidade);

    no ciclo onde constróis o campo da quantidade, adicionas um campo (por ex. hidden) com o id do registo dakela quantidade, os 2 valores são passados por array (quantidade[] e id[]) , depois do post é só percorrer os 2 arrays e ir actualizando os valores mediante o id ...

    juntando o código todo no mesmo ficheiro, vê se isto te ajuda e tenta adaptar às tuas necessidades

    PHP:
    <?php
    function DoConnection(){
      
    $dbhost 'localhost';
      
    $dbuser 'root';
      
    $dbpwd =  "";
      
    $dbname="ecorecolha";
      
      
    $conn mysql_connect($dbhost$dbuser$dbpwd);
      
    mysql_select_db($dbname,$conn) or die("Error connecting to mysql");
      return 
    $conn;  
    }

    function 
    DoForm(){
      
    $conn=DoConnection();  
      
    $sql"select * from tinteiros";
      
    $resultado mysql_query ($sql,$conn);
      
      if (
    $resultado) {
        
    $str="<form method=\"post\">";
        
    $str.="<table width=\"90%\" align=center border=2>";
        
    $str.="
          <tr>
            <td width=\"40%\" align=center bgcolor=\"FFFF00\"> Ref Tinteiro </td>
            <td width=\"30%\" align=center bgcolor=\"FFFF00\"> Marca </td>
            <td width=\"30%\" align=center bgcolor=\"FFFF00\"> Quantidade </td>
          </tr>"
    ;
        while (
    $registo=mysql_fetch_array($resultado)){
          
    $ref=$registo["Cotação"];
          
    $marca=$registo["Marca"];
          
    $quantidade=$registo["quantidade"];
          
    $id=$registo["id"];
          
          
    $str.="
            <tr><td align=center> 
    $ref </td><td align=center> $marca </td>
              <td>
                <input type=\"text\" name=\"quantidade[]\" value=\"
    $quantidade\">
                <input type=\"hidden\" name=\"id[]\" value=\"
    $id\">
              </td>
            </tr>"
    ;
        }
        
    $str.="<tr><td colspan=\"3\"><input type=\"submit\" value=\"Submit\" name=\"submit\"></td></tr>";
        
    $str.="</table></form>";
      }
      
    mysql_close($conn);
      return 
    $str;
    }

    function 
    UpdateData($quantidades,$ids){
      
    $count=sizeof($ids); //contagem dos campos
      
    $conn=DoConnection();
      
      for (
    $i=0;$i<$count;$i++){ //actualizar campos
        //deverá ser feito o tratamento do sql, devido ao sql injection ....
        
    $sql="update tinteiros set quantidade='$quantidades[$i]' where id='$ids[$i]'";
        
    mysql_query($sql) or die("error updating");
      }
      
      
    mysql_close($conn);
      echo 
    "informação actualizada com sucesso<br>";
    }

    ?>

    <html>
    <body>
    <?php
      $submit
    =$_POST["submit"];
      if(!
    $submit){ //página chamada pela 1ªx
        
    echo DoForm();    
      }
      else{ 
    //actualizar valores
        
    $quantidades=$_POST["quantidade"];
        
    $ids=$_POST["id"];
        
    UpdateData($quantidades,$ids);
        echo 
    DoForm();
      }
    ?>
    </body>
    </html>
     
  6. _NoDe_

    _NoDe_ [email protected] Member

    Sim isso serviu Lindamente , era mesmo isso que precisava, obrigado.

    Tenho outra questão agora , precisava de guardar um historico das tabelas ,ou seja, tenho clientes e cada cliente tem de me preecher uma tabela destas , ( mensalmente cada cliente têm de me fazer uma tabela destas ), como poderia eu guardar a tabela , ela teria de estar identificada pelo cliente que a fez e pela sua data.

    A ideia ao inicio seria fazer uma tabela genero documentos , com os campos utilizador , data , e ID de tabela, esse campo ligaria a outra tabela com os tinteiros , mas iria ficar os com os tinteiros repetidos para todos os campos da tabela documentos, e não domino o suficiente para programar isto .

    Alguma ajuda ?

    Tenho um software chamado phprunner que ajuda mas neste aspecto na me ajuda.
     

Partilhar esta Página