PHP - AYUDA CON UPDATE

 
Vista:

AYUDA CON UPDATE

Publicado por Eduardo (17 intervenciones) el 02/09/2010 20:12:30
HOla listeros...acudo ustedes por que ya estoy ciclado...

tengo el siguiente codigo:

// $add_item - Arreglo, valor obtenido de una pagina anterior
//$add_po - valor obtenido de una pagina anterior

$add_po = $_POST['ad_po'];
$add_item = $_POST['ad_item']

foreach ($add_item as $a => $b)
{

$sql = " UPDATE datos SET no_parte = '$add_parte[$a]' WHERE po = $add_po ";
echo $sql;
mysql_query($sql,$con);
echo " <br> ";
}

El codigo anterior me imprime lo siguiente:

UPDATE datos SET no_parte = 'W5110' WHERE po = 1
UPDATE datos SET no_parte = 'W56011' WHERE po = 1
UPDATE datos SET no_parte = 'W0134' WHERE po = 1

se supon que quiero actualizar el campo no_parte donde el valor po se igual al campo obtenido de otra pagina....

cuando observo el campo que se agrego a la base de datos, solo se encuentra el ultimo registro....

es decir...el campo no_parte solo tiene el valor W0134 en todos los registros que tienen el campo po = 1..

Alguien me podria ayudar o indicarme en donde estoy mal??

saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA CON UPDATE

Publicado por le (42 intervenciones) el 02/09/2010 21:17:52
Para modificar un tupla de la tabla de forma unica tienes que especificar los valores de la primary key ( clave primaria ) de la tabla en la clausula WHERE.

(Nota: La clave primaria es la que identifica de forma unica a cada tupla de la tabla)

ej: suponiendo que la clave primaria de la tabla datos esta formada por campo1 y campo2 y quieres modificar solo el registro que tenga el valor1 en campo1 y valor2 en
campo 2 .

haces:
UPDATE datos SET no_parte = 'W0134' WHERE campo1= valor1 and campo2 = valor2 ...

Saludos
Leandro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON UPDATE

Publicado por Gerardo Esquivel (22 intervenciones) el 02/09/2010 21:18:54
Me parece que está muy claro, estás realizando una actualización sobre los registros que el campo po = 1, entonces primero actualizas ese/esos registro/(s) de esta forma:

Primero:
UPDATE datos SET no_parte = 'W5110' WHERE po = 1

Aquí el campo no_parte se actualiza con el valor ( W5110) para po = 1.

Pero luego viene el segundo UPDATE:
UPDATE datos SET no_parte = 'W56011' WHERE po = 1

Entonces ahora todos los registros con po = 1 (nuevamente), serán actualizados en su campo no_parte a (W56011')

Y por tercera ocasión vuelves a actualizar el mismo campo con la misma condición:
UPDATE datos SET no_parte = 'W0134' WHERE po = 1

Obvio, la última actualización es la que permanece.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar