php update nao econtra variaveis

stardemos

Membro
este codigo:


<?php
//conecção ao servidor
mysql_connect("localhost", "root")or die("sem conecção ao servidor");
mysql_select_db("sermail")or die("Base de dados não foi encontrada");


$nordem=$_POST['nordem'];
$sql="SELECT * FROM entrada where nordem_n = '" . mysql_real_escape_string($nordem) . "'";
$result=mysql_query($sql) or die(mysql_error());


// Count table rows
$count=mysql_num_rows($result);
?>

<table border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table border="1" cellspacing="1" cellpadding="0">

<tr>
<td align="center"><h2>N.º Ordem </h2> </td>
<td align="center"><h2>Código Produto </h2> </td>
<td align="center"><h2>Cód. Cliente <br>1-Lote </h2> </td>
<td align="center"><h2>Cód. Cliente<br>2-validade </h2> </td>
<td align="center"><h2>Designação </h2> </td>
<td align="center"><h2>Filtro 1 <br> Unidade de <br>negócio </h2> </td>
<td align="center"><h2>Familia</br>Marca </h2> </td>
<td align="center"><h2>Quant.<br> Guia </h2> </td>
<td align="center"><h2>Quant. <br>Conferida </h2> </td>
<td align="center"><h2>Atado </h2> </td>
<td align="center"><h2>Posição </h2> </td>
</tr>

<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<?php $id[]=$rows['id']; ?>

<td align="center">
<input name="nordem[]" type="text" size="6" id="nordem" value="<?php echo $rows['nordem_n']; ?>">
</td>

<td align="center">
<input name="codprod[]" type="text" size="9" id="codprod" value="<?php echo $rows['codprod']; ?>">
</td>

<td align="center">
<input name="lote[]" type="text" id="lote" size="8" value="<?php echo $rows['lote']; ?>">
</td>

<td align="center">
<input name="val[]" type="text" id="val" size="10" value="<?php echo $rows['val']; ?>">
</td>

<td align="center">
<input name="designacao[]" type="text" size="15" id="designacao" value="<?php echo $rows['designacao']; ?>">
</td>

<td align="center">
<input name="filtro[]" type="text" id="filtro" size="10" value="<?php echo $rows['filtro']; ?>">
</td>

<td align="center">
<input name="familiamarca[]" type="text"size="10" id="familiamarca" value="<?php echo $rows['familiamarca']; ?>">
</td>

<td align="center">
<input name="quantguia[]" type="text" size="6" id="quantguia" value="<?php echo $rows['quantguia']; ?>">
</td>

<td align="center">
<input name="quantconf[]" type="text" id="quantconf" size="6" value="<?php echo $rows['quantconf']; ?>">
</td>

<td align="center">
<input name="atado[]" type="text" id="atado" size="6" value="<?php echo $rows['atado']; ?>">
</td>

<td align="center">
<input name="posicao[]" type="text" id="posicao"size="6" value="<?php echo $rows['posicao']; ?>">
</td>
</tr>

<?php
}
?>

<tr>
<td colspan="11" align="center"><input type="submit" name="Alterar" value="Alterar"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>

<?php
$Alterar=$_POST['Alterar'];
// Check if button name "Submit" is active, do this

if($Alterar){
for($i=0;$i<$count;$i++){
$sql1="UPDATE entrada SET codprod='$codprod[$i]', lote='$lote[$i]', val='$val[$i],designacao='$designacao[$i]', filtro='$filtro[$i]', familia='$familia[$i],quantguia='$quantguia[$i]', quantconf='$quantconf[$i]', atado='$atado[$i],posicao='$posicao[$i]'' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);echo $sql1;
}
}
if($result1){
header("location:pesquisar.html");
}
mysql_close();
?>


apresenta este erro: Notice: Undefined index: Alterar in C:\wamp\www\teste\pesquisar.php on line 109 na linha a vermelho.
a mim parece-me tudo bem, mas o erro esta lá. aguem o consegue ver?

obrigado pela ajuda
 
Boas,

Tens que por assim:

<?php
if (isset($_POST['Alterar']))
{
$Alterar = $_POST['Alterar'];
for($i=0;$i<$count;$i++){
$sql1="UPDATE entrada SET codprod='$codprod[$i]', lote='$lote[$i]', val='$val[$i],designacao='$designacao[$i]', filtro='$filtro[$i]', familia='$familia[$i],quantguia='$quantguia[$i]', quantconf='$quantconf[$i]', atado='$atado[$i],posicao='$posicao[$i]'' WHERE id='$id[$i]'";
$result1=mysql_query($sql1);echo $sql1;
}
}
if($result1){
header("location
tongue.gif
esquisar.html");
}
mysql_close();
?>


Porque a primeira vez que carregas a pagina a variavel alterar vai tentar receber algo vindo do post com com nome Alterar e não vai receber nada.
 
obrigado! de facto corrigiu o erro dessa variavem, no entanto o da var $result1 mantem-se, por outro lado, alem de não fazer o update de dados ainda me presenteia com:
Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in C:\wamp\www\teste\teste.php on line 8.

como ainda estou a aprender sql e php é um pouco complicado apanhar estes erros, dai precisar da vossa ajuda.
 
Não deves estar a enviar por POST o $nordem.
Para ser mais facil preceber se estas a enviar tudo bem tenta primeiro usar GET em vez de post assim vez no link do browser o que envias depois se quiseres por seguranca mudas para POST.
Uma dica experimenta usar isso http://www.phpscaffold.com/

Como diz ainda estar aprender isto para coisas muito básicas funciona, Inserir, alterar, remover em tabelas.
 
Última edição:
ja esperimentei o $_GET, volta á fase de nao saber que variavel é...

preciso de : selecionar dados da tabela, mostra-los e altera-los, podem ter de ser alteradas entre 1 e 6 linhas.
de que forma aconselhas fazer isso??
 
Com o programa do link que enviei visualizas e alteras um a um, é uma boa base para começares.
Basta colocares o codigo sql de criação da tabela que ele cria todas as paginas php para visualizar alterar pagar
 
Back
Topo