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

_NoDe_

Portugal@Home 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
 
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...
 
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
 
é exactamente isso , criar um array com os valores das quantidades e depois na pagina seguinte enfiar os valores todos na base de dados.


<form action="teste2.php" method="get">
<?php


$dbhost = 'localhost';
$dbuser = 'root';
$i=0;

$conn = mysql_connect($dbhost, $dbuser) or die ('Error connecting to mysql');


$sql= "select * from tinteiros";
$resultado = mysql_db_query ("ecorecolha",$sql);

if ($resultado) {
print("<table width=\"90%\" align=center border=2>");
print("<tr><td width=\"40$\" align=center bgcolor=\"FFFF00\"> Ref Tinteiro </td><td width=\"20%\" align=center bgcolor=\"FFFF00\"> Marca </td></tr>");

while ($registo=mysql_fetch_array($resultado)){

$ref=$registo["Cotação"];
$marca=$registo["Marca"];



print ("<tr><td align=center> $ref </td><td align=center> $marca </td><td>");
?>
<input type="text" name="<?$quantidade?>"></input>
<?
print ("</td></tr>");
$i=i+1;
}
echo ("</table>");


}

?>
<input type=submit value="Submit">
</form>


Fiz isto mas na resulta ( sou novato nisto ), alguem pode me ajudar ? cumpts
 
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>
 
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.
 
Back
Topo