Foros del Web » Programando para Internet » PHP »

Ayuda para actualizar datos en sql

Estas en el tema de Ayuda para actualizar datos en sql en el foro de PHP en Foros del Web. Estoy haciendo un sistema en donde para editar datos de una base de datos en mysql utilizo primero un llamado con un listado de todos ...
  #1 (permalink)  
Antiguo 10/06/2010, 21:13
 
Fecha de Ingreso: junio-2005
Mensajes: 20
Antigüedad: 18 años, 9 meses
Puntos: 0
Ayuda para actualizar datos en sql

Estoy haciendo un sistema en donde para editar datos de una base de datos en mysql utilizo primero un llamado con un listado de todos los datos de la tabla, las cuales tengo identificados por Id's. En la tabla(EN LA TABLA DONDE APARECE EL LISTADO HTML) existe una fila oculta que con un javascript aparace en cada id(por debajo), todos los datos salen bien con la función: <? echo $datos[account] ?> dentro del campo para editar.
Código HTML:
<tr name="edit<? echo $datos[id] ?>" id="edit<? echo $datos[id] ?>"  style="display:none">
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <label>
      <input name="id2" type="text" id="id2" value="<? echo $datos[id] ?>" size="5" style="display:none" />
      </label>
      <input name="date2" type="text" id="date2" value="<? echo $datos[date] ?>" size="10" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <input name="num2" type="text" id="num2" value="<? echo $datos[num] ?>" size="15" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <input name="hbl2" type="text" id="hbl2" value="<? echo $datos[hbl] ?>" size="15" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <input name="account2" type="text" id="account2" value="<? echo $datos[account] ?>" size="15" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <input name="consignee2" type="text" id="consignee2" value="<? echo $datos[consignee] ?>" size="15" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <input name="pcs2" type="text" id="pcs2" value="<? echo $datos[pcs] ?>" size="5" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <input name="c12" type="text" id="c12" value="<? echo $datos[c1] ?>" size="5" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <textarea name="c22" cols="10" id="c22"><? echo $datos[c2] ?></textarea>
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><span class="Estilo1">
      <input name="c32" type="text" id="c32" value="<? echo $datos[c3] ?>" size="10" />
    </span></td>
    <td bordercolor="#000000" class="tabla_mensaje"><input name="Submit2" type="submit" id="Submit2" value="Edit" /></td>
  </tr> 
Cada campo lo tengo nombrado de una forma, por ejemplo
"date2". Con la función update renuevo la fila de la tabla:
Código PHP:
mysql_query("update cliente1 SET [B]date='{$_POST['date2]']}',[/B]num='{$_POST['num2']}',hbl='{$_POST['hbl2']}',account='{$_POST['account2']}',consignee='{$_POST['consignee2']}',pcs='{$_POST['pcs2']}',c1='{$_POST['c12']}',c2='{$_POST['c22']}',c3='{$_POST['c32']}' WHERE id='{$_POST['id2']}' ",$link); 
Todo va bien, hasta que existe más de un dato en la fila.. entonces el dato "mas nuevo" nadamás puede ser modificado y el primer dato no.

Mi teoría es que al existir DOS CAPOS con el mismo nombre, "date2", simplemente afecta de alguna forma en la inserción de los datos en la base.

Yo intente cambiar el codigo de los campos a:

Código HTML:
<input name="date<? echo $datos[id] ?>" type="text" id="date<? echo $datos[date] ?>" value="<? echo $datos[date] ?>" size="10" /> 
Para que por ejemplo el dato con id 24 Quede asi el input name: date24 y así lo identifique de manera individual y no genere conflicto.

Pero al intentar ponerlo en la función update, lo trate de poner asi:
Código PHP:
mysql_query("update cliente1 SET date='{$_POST['date<? echo $datos[id?>]']}'
para que quedara: date='{$_POST['date24']}'

Pero sin embargo no funciona, supongo que no es posible realizar en sentencias de sql, por eso les pido su ayuda para resolver este problena

Gracias!
  #2 (permalink)  
Antiguo 11/06/2010, 05:44
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Ayuda para actualizar datos en sql

Prueba con:
Código PHP:
mysql_query("update cliente1 SET date='".$_POST['date'.$datos[id]]."'"); 
  #3 (permalink)  
Antiguo 11/06/2010, 07:28
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Ayuda para actualizar datos en sql

Prueba ahora a ver que pasa:

Es mas hasta podrias hacer una prueba manual: digo reemplazar los post por valores literales ejemplo num="1234", incluso id=".$_POST['id2']."", por una id que exista en la tabla, y este repetida

En tu codigo habia un peqeño error de sintaxis

Código PHP:


mysql_query
("update cliente1 SET    
                            date="
.$_POST['date2'].",
                            num="
.$_POST['num2'].",
                            hbl="
.$_POST['hbl2'].",
                            account="
.$_POST['account2'].",
                            consignee="
.$_POST['consignee2'].",
                            pcs="
.$_POST['pcs2'].",
                            c1="
.$_POST['c12'].",
                            c2="
.$_POST['c22'].",
                            c3="
.$_POST['c32'].
                            WHERE id="
.$_POST['id2']."",
                            
$link); 

Etiquetas: bases, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.