once more again, here I am with questions.
this query, dont let me update fields where I have leter's,but do the job with numbers...

the output of the last test:

*Unknown column 'sfas' in 'field list'

UPDATE entrada SET codprod=13, lote= 123, val=sfas, designacao=tyr5rtdjbgyug, filtro=jghhjg, familiamarca=ghgjhfhf, quantguia=12, quantconf=12, atado=1, posicao=20a15 WHERE id=22*

the code:

<?php
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'];
$nordem = mysql_real_escape_string($nordem);
$query = "SELECT * FROM entrada WHERE nordem_n = '$nordem'";
    $result = mysql_query($query) or die(mysql_error());?>
    <table border="1" cellspacing="0"><form action='umprq2.php' method='post'> 
<tr>
<td>Código Produto</td><td>Código Cliente</br>1-Lote</td><td>Código Cliente</br>2-Validade</td><td>Designação</td><td>Filtro 1</br> unidade de</br>Negocio</td><td>Familia/Marca</td><td>Quantidade Guia</td><Td>Quantidade conferida</td><td>Atado</td><td>Posição</td>
</tr><?php 
while ($dados = mysql_fetch_object($result)) {
?>

<tr>
<td><input size="9"  type='textbox'  name='codprod[]'      value="<?php echo $dados->codprod; ?>"</td>
<td><input size="6"  type='textbox'  name='lote[]'         value="<?php echo $dados->lote; ?>"</td>
<td><input size="6"  type='textbox'  name='val[]'          value="<?php echo $dados->val; ?>"</td>
<td><input size="15" type='textbox'  name='designacao[]'   value="<?php echo $dados->designacao; ?>"</td>
<td><input size="8"  type='textbox'  name='filtro[]'       value="<?php echo $dados->filtro; ?>"</td>
<td><input size="10" type='textbox'  name='familiamarca[]' value="<?php echo $dados->familiamarca; ?>"</td>
<td><input size="6"  type='textbox'  name='quantguia[]'    value="<?php echo $dados->quantguia; ?>"</td>
<td><input size="6"  type='textbox'  name='quantconf[]'    value="<?php echo $dados->quantconf; ?>"</td>
<td><input size="6"  type='textbox'  name='atado[]'        value="<?php echo $dados->atado; ?>"</td>    
<td><input size="6"  type='textbox'  name='posicao[]'      value="<?php echo $dados->posicao; ?>"</td>
<td><input           type='checkbox' name='check[]'        value="1"</td>
<td><input           type='hidden'   name='id[]'           value="<?php echo $dados->id; ?>"></td>
</tr>

<?php

}
?>
<td><input type='submit' name="submit" value='Alterar'>
</tr>
</form>
</table>

2nd file

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


    //update
    if ( isset ( $_POST['submit'])){
    for ($i = 0; $i < count($_POST['check']); $i++) {
    if ($_POST['check'][$i] == 0) continue;
    $sql2a = "UPDATE entrada SET
    codprod={$_POST['codprod'][$i]},
    lote= {$_POST['lote'][$i]},
    val={$_POST['val'][$i]},
    designacao={$_POST['designacao'][$i]},
    filtro={$_POST['filtro'][$i]},
    familiamarca={$_POST['familiamarca'][$i]},
    quantguia={$_POST['quantguia'][$i]},
    quantconf={$_POST['quantconf'][$i]},
    atado={$_POST['atado'][$i]},
    posicao={$_POST['posicao'][$i]}
    WHERE id={$_POST['id'][$i]}";
    mysql_query($sql2a) or die(mysql_error() . '<br/></br>' . $sql2a);

    }}
    echo $sql2a;echo"</br>";
    // pagina inicial, update.html
    Echo "<a href='pesquisar.html'>Nova pesquisa</a>";
    ?>
    <?php
    mysql_close();
    ?>

can your help me understanding and correcting the problem?

in the DB the fiels on what i want letters are varchar.

Recommended Answers

All 3 Replies

If the column is a varchar, then you need single quotes around the value in your query. Like this:

UPDATE table SET varcharcolumn='value'

Your query doesn't have any.

instead of

val= {$_POST['val'][$i]},



       val='$_POST['val'][$i]'??

if so, does not seem to work.
even tryied

val="$_POST['val'][$i]"

and nothing apening beside errors and screams...

done, thanks, it looks like this:

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


    //update
    if ( isset ( $_POST['submit'])){
    for ($i = 0; $i < count($_POST['check']); $i++) {
    if ($_POST['check'][$i] == 0) continue;

    $F1=$_POST['codprod'][$i];
    $F2=$_POST['lote'][$i];
    $F3=$_POST['val'][$i];
    $F4=$_POST['designacao'][$i];
    $F5=$_POST['filtro'][$i];
    $F6=$_POST['familiamarca'][$i];
    $F7=$_POST['quantguia'][$i];
    $F8=$_POST['quantconf'][$i];
    $F9=$_POST['atado'][$i];
    $F10=$_POST['id'][$i];

    $sql2a = "UPDATE entrada SET
    codprod= {$F1},
    lote= {$F2},
    val= '$F3',
    designacao= '$F4',
    filtro= '$F5',
    familiamarca='$F6',
    quantguia={$F7},
    quantconf={$F8},
    atado={$F9},
    posicao='$F10'
    WHERE id={$_POST['id'][$i]}";
    mysql_query($sql2a) or die(mysql_error() . '<br/></br>' . $sql2a);

    }}
    echo $sql2a;echo"</br>";
    // pagina inicial, update.html
    Echo "<a href='pesquisar.html'>Nova pesquisa</a>";
    ?>
    <?php
    mysql_close();
    ?>
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.