Foros del Web » Programando para Internet » PHP »

UPDATE dentro de cadena repetitiva

Estas en el tema de UPDATE dentro de cadena repetitiva en el foro de PHP en Foros del Web. Tengo un problema, necesito hacer un Update dentro de una cadena repetitiva. la estructura es algo asi. Código PHP: while ($reg=mysql_fetch_array($registros2)) { for ($r=0;$r<$row;$r++) { ?><input type="text" name=" <?php  ...
  #1 (permalink)  
Antiguo 27/08/2011, 00:24
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta UPDATE dentro de cadena repetitiva

Tengo un problema,
necesito hacer un Update dentro de una cadena repetitiva.

la estructura es algo asi.

Código PHP:
while ($reg=mysql_fetch_array($registros2))
{
for ($r=0;$r<$row;$r++)
{
?><input type="text" name="<?php echo $r; }?>" value="<?php echo $reg['item'?>" />
<?php ?>
mientras existan registros en $registros2 creará un cuadro con el nombre del registro

**SUPUSE** q al poner $r que pertenece al for cada linea asumiria como nombre de $r (0-1-2-3-4-5-etc.....)


LUEGO GENERE LA RESPUESTA DEL FORMULARIO DONDE PUSE EL UPDATE


Código PHP:
while ($reg=mysql_fetch_array($registros))
{
for (
$r=0;$r<$row;$r++)
{
mysql_query("update eventos set
    item=$_REQUEST[$r]"
);             
}    


SE SUPONE que mientras $reg encontrará registros realizaría un UPDATE dentro de la BD sustituyendo item por el indice recuperado del $_REQUEST[$r] (0-1-2-3-4-5-etc...) y actualizaria el valor dentro de la BD....

ESPERO HABERME EXPLICADO (ME cuesta un poco ya que soy principiante)

OJALA ALGUIEN PUEDA AYUDARME

SALUDOS, MUY BUENA LA PAGINA..!!
  #2 (permalink)  
Antiguo 27/08/2011, 09:28
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: UPDATE dentro de cadena repetitiva

Que yo recuerde, no puedes poner numeros como nombre de campo, en todo caso, creo que te convendria mas hacerlo con arreglos:

Código HTML:
Ver original
  1. <input type="text" name="campo[]" value="..." />

Despues en PHP lo recorres:
Código PHP:
Ver original
  1. while ($reg=mysql_fetch_array($registros)) {
  2.     for ($r=0;$r<$row;$r++) {
  3.         mysql_query("update eventos set item={$_REQUEST['campo'][$r]}");            
  4.     }
  5. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 27/08/2011, 17:34
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: UPDATE dentro de cadena repetitiva

Creo que con ese Update te va a dejar todos los "item" con el mismo valor, si pasa esto le tendrias que añadir la sentencia WHERE
__________________
Mas vale un codigo que mil palabras
  #4 (permalink)  
Antiguo 27/08/2011, 19:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: UPDATE dentro de cadena repetitiva

dmm84, tienes razon... falta el WHERE!
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 27/08/2011, 21:16
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: UPDATE dentro de cadena repetitiva

Ya pero disculpen mi ignotancia, cuando le doy name="" al input dentro debe ir el arreglo, tengo que abir las llaves php???? Porq si no no doy como hacerlo.

Arreglo=array??? (Correcto)


Disculpeb si la pregunta es muy basica, estoy re100 aprendiendo
  #6 (permalink)  
Antiguo 29/08/2011, 13:38
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: UPDATE dentro de cadena repetitiva

bueno hice lo que me dijeron

Código PHP:
<?php
while ($reg=mysql_fetch_array($registros2))
{
?>
<input type="text" name="item[]" value="<?php echo $reg['item_ev'?> " />
<input type="hidden" name="itemh[]" value="<?php echo $reg['item_ev'?> " />
en item[] rescató el valor que aparece en la BD y guardo el valor modificado
en itemh[] Guardo el valor original


Código PHP:
foreach ($_REQUEST['item'] as $key => $value)
{
@
mysql_query("update eventos set item_ev='$value' where item_ev='$_REQUEST[itemh] ' and cliente_ev='$_REQUEST[clientehid]' ");

cuando hago el update todo bien, pero no alcanzo hacer que where asuma el valor del array almacenado, sólo asume valores "array,array,array...." no sé si me lograis entender.

al final el update no se realiza porque no encuentra el valor búscado en Where dentro de la BD.


Alguna idea para lograr solucionar este problema ???



LES AGRADECERÍA MUCHÍSIMO SI ME AYUDAIS....
de antemano que tengais un buen día.



Saludos
  #7 (permalink)  
Antiguo 29/08/2011, 13:52
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 5 meses
Puntos: 194
Respuesta: UPDATE dentro de cadena repetitiva

Tenes mal escapeados los datos en la query, Intenta asi:

Código PHP:
@mysql_query("update eventos set item_ev='".$value."' where item_ev='".$_REQUEST['itemh']. "' and cliente_ev='"$_REQUEST['clientehid']. "'"); 
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #8 (permalink)  
Antiguo 29/08/2011, 14:34
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: UPDATE dentro de cadena repetitiva

Muchas Gracias por su respuesta,

Lamentablemente no realizo la acción... dado que el WHERE no es válido.

solo arroja como valores lo siguiente


ArrayArrayArrayArrayArray

por eso no lo encuentra dentro de la BD


aluna idea ??
  #9 (permalink)  
Antiguo 30/08/2011, 23:28
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: UPDATE dentro de cadena repetitiva

Bueno,

Al final lo solucione con el siguiente código.

Código PHP:
while (($reg=each($_REQUEST['cant'])) and ($reg2=each($_REQUEST['canth'])))
{
@
mysql_query("update eventos set cantidad_ev='$reg[value]' where cantidad_ev='$reg2[value]' and cliente_ev='$_REQUEST[clientehid]'");
}
echo 
"Realizado" 
Guardo en $reg el resultado nuevo
guardo en $reg2 el registro original.

y "TODO" funciona OK.

el único problema que tengo es el siguiente.

es una tabla de items y cantidades.
ej


item___cantidad

x____10
y____8
z____5
q____4
e____8


si quiero modificar "y" que tiene como cantidad "8", y le asigno "7"
el registro "e" también cambia ya que tiene el mismo valor "8".

alguna forma de solucionar esto ???


Gracias
  #10 (permalink)  
Antiguo 30/08/2011, 23:43
 
Fecha de Ingreso: agosto-2007
Ubicación: Santiago de Chile
Mensajes: 67
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: UPDATE dentro de cadena repetitiva

Cita:
Iniciado por i34a23 Ver Mensaje
Bueno,

Al final lo solucione con el siguiente código.

Código PHP:
while (($reg=each($_REQUEST['cant'])) and ($reg2=each($_REQUEST['canth'])))
{
@
mysql_query("update eventos set cantidad_ev='$reg[value]' where cantidad_ev='$reg2[value]' and cliente_ev='$_REQUEST[clientehid]'");
}
echo 
"Realizado" 
Guardo en $reg el resultado nuevo
guardo en $reg2 el registro original.

y "TODO" funciona OK.

el único problema que tengo es el siguiente.

es una tabla de items y cantidades.
ej


item___cantidad

x____10
y____8
z____5
q____4
e____8


si quiero modificar "y" que tiene como cantidad "8", y le asigno "7"
el registro "e" también cambia ya que tiene el mismo valor "8".

alguna forma de solucionar esto ???


Gracias


SOLUCIONADO...!!

Agrege una 3era condición en el update.

AQUI CIERRO EL TEMA, ya que logré hacer los que buscaba.


saludos.

Etiquetas: mysql, registro, repetitiva, sql, update, formulario, cadenas
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:29.