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

php update nao econtra variaveis

Discussão em 'Web Development' iniciada por stardemos, 6 de Agosto de 2012. (Respostas: 6; Visualizações: 873)

  1. 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
     
  2. chicowcs

    chicowcs Power Member

    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[​IMG]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.
     
  3. 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.
     
  4. chicowcs

    chicowcs Power Member

    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: 7 de Agosto de 2012
  5. 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??
     
  6. chicowcs

    chicowcs Power Member

    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
     
  7. a resposta que o site me deu foi um codigo que nao funciona, depois de fazer a pesquisa, a resposta é : uma pagina em branco...
     

Partilhar esta Página