Foros del Web » Programando para Internet » PHP »

Update en un foreach Ayuda..

Estas en el tema de Update en un foreach Ayuda.. en el foro de PHP en Foros del Web. Saludos a todos , me dan una mano tengo un sistema de inventario y me gustario saber como hago para dar un update dentro de ...
  #1 (permalink)  
Antiguo 25/03/2008, 18:43
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Update en un foreach Ayuda..

Saludos a todos , me dan una mano tengo un sistema de inventario y me gustario saber como hago para dar un update dentro de un foreach o while aqui como es:

tengo la consulta de tabla

Producto -- precio -
A --- 10
B --- 25
C --- 30
.....

luego un boton actualizar

me actulice el producto (nombre) y el precio
por que bien dificil esta modidicando uno a un en un inventario de mas de 2000 prodcutos espero su ayuda muchas gracias...

se que se puede hacer con un foreach pero como?
  #2 (permalink)  
Antiguo 25/03/2008, 21:49
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Re: Update en un foreach Ayuda..

dejam entender lo que quieres hacer es actualizar varios campos a la ves dentro de un formulario

al estilo phpMyAdmin

tengo algo parecido sie s lo que necesitas

<input name="blok[1][title]" type="text" value="MENU DE NAVEGACION"/>
<input name="blok[1][name]" type="text" value="main menu"/>

<input name="blok[2][title]" type="text" value="otor titulo"/>
<input name="blok[2][name]" type="text" value="sua nome"/>
lo que hago es crear un variable con arrays en html

y en php las recupero de la siguiente forma

Código:
<?php

  foreach($_POST[blok] as $id => $value)
{
       $modificar = "field_title='$value[title]' , field_name='$value[name]'";
       $consulta = mysql_query("UPDATE 'nombre_tabla' SET $modificar WHERE field_id='$id' ");
      if($consulta === false)
      {
              echo "un error en la actualizacion de datos";
      }
}

?>
bueno algo asi

pero apra 2000 uff waw muy tedioso no crres jeje bueno espero te sirva bye
  #3 (permalink)  
Antiguo 27/03/2008, 01:23
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Update en un foreach Ayuda..

Hola gracias , Mmmm! sabes lo estoy haciedno de esta manera
Código PHP:

<form name="aqui" method="post" action="02.php">
<table width="200" border="1">
  <tr>
    <td>ID</td>
    <td>Nombre</td>
    <td>Precio</td>
  </tr>

<? 
include("conexion.php");
$sql=mysql_query("SELECT * FROM test") or die (mysql_error());
$x=1;

/// x se le va sumando 1
while ($row=mysql_fetch_object($sql))
{
?>

  <tr>
    <td><input type="text" name="id[<? echo $x;?>]" value="<? echo $row->id ?>" /></td>
    <td><input type="text" name="nombre[<? echo $x;?>]" value="<? echo $row->nombre ?>" /></td>
    <td><input type="text" name="precio[<? echo $x;?>]" value="<? echo $row->precio?>" /></td>
  </tr>

 


<? 
$x
++;
}
?>

</table>

<input type="submit"  value="Actulizar" />
</form>
y el php que actuliza asi.

Código PHP:
<?php
include("conexion.php");

  foreach(
$_POST[id] as $id => $value)
{
       
$modificar "nombre='$value[nombre]',precio='$value[precio]'";
       
       
$consulta mysql_query("UPDATE test  SET $modificar WHERE id='$id' ");
      
      
      if(
$consulta === false)
      {
              echo 
"un error en la actualizacion de datos";
      }
}

?>
y no me dad error solo que la
tabla qued asi:

id nombre precio
* 1 1 1
*2 2 2

* son los id de cada uno me ayudas, y si es lo mismo que phpadmin cuando modificas registro te la da la opcion de varios a mismo tiempo gracas por tu ayuda de ante mano.
  #4 (permalink)  
Antiguo 27/03/2008, 01:54
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 17 años, 8 meses
Puntos: 223
Re: Update en un foreach Ayuda..

El problema es que estás trabajando solo con $_POST[id] para $value, en ningun momento estás tomando los valores de $_POST[nombre] y $_POST[precio].
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #5 (permalink)  
Antiguo 27/03/2008, 02:12
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Re: Update en un foreach Ayuda..

para hacer eso como hago, ya que foreach solo toma un valor ¿Verdad?, me ayudas gracias que este comando primera vez que lo utilizo
  #6 (permalink)  
Antiguo 27/03/2008, 04:09
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: Update en un foreach Ayuda..

Hola, este es un formulario que uso para eliminar los registros que selecciono de una BD, con un While, a ver si te sirve para darte una idea de como hacer lo que tu qieres.


Código PHP:
<?
$connect
=mysql_connect("localhost","root","1717388 6")or die("Error conectar..." .mysql_error());
$db=mysql_select_db('dbprueba');
?>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<!--Preparamos las cabeceras del form que se rellenaran con la consulta a la BD para obtener los registros a eliminar-->
<form name="form1" method="post" action="c_index2.php">
<table width="761" border="0">
<tr bgcolor="#FFFFCC"> 
<td><div align="center"><strong>Nombre</strong></div></td>
<td><div align="center"><strong>Apellido</strong></div></td>
<td><div align="center"><strong>Sexo</strong></div></td>
<td><div align="center"><strong>Ciudad</strong></div></td>
<td><div align="center"><strong>Documento</strong></div></td>
<td><div align="center"><strong>Email</strong></div></td>
<td><div align="center"><strong>Opinion</strong></div></td>
<td><div align="center"><font color="#FF0000"><strong>Eliminar</strong></font></div></td>
</tr>
<?
//hacemos la consulta y rellenamos la tabla del form
$sql1="select *from tblcliente";
$query=mysql_query($sql1)or die("Error...1" .mysql_error());
while(
$resul=mysql_fetch_array($query)){
?>
<tr> 
<td><div align="center"><? echo $resul[nombre_cli]?></div></td>
<td><div align="center"><? echo $resul[apellido_cli]?></div></td>
<td><div align="center"><? echo $resul[id_sex]?></div></td>
<td><div align="center">
<?
//hago una segunda consulta porque tengo datos en otra tabla, esta parte no te hace falta
//sigo rellenando el form
$sql2="select *from tblciudad where id_ciu=$resul[id_ciu]";
$query2=mysql_query($sql2)or die("Error...2" .mysql_error()); 
$resul2=mysql_fetch_array($query2);
echo 
$resul2[nombre_ciu];
?></div></td>
<td><div align="center"><? echo $resul[id_cli]?></div></td>
<td><div align="center"><? echo $resul[email_cli]?></div></td>
<td><div align="center"><? echo $resul[opinion_cli]?></div></td>
<td><div align="center"> 
<input type="checkbox" name="cEliminar[]" value="<? echo $resul[id_cli]?>">
</div></td>
</tr>

<? ?>
<tr> 
<td colspan="8"><input name="bEliminar" type="submit" id="bEliminar" value="Eliminar">
<input type="reset" name="Submit2" value="Restablecer"></td>
</tr>
</table>
</form>

<?
$connect
=mysql_connect("localhost","root","1717388 6")or die("Error al conectar" .mysql_error());
$db=mysql_select_db("dbprueba");
//y aqui es donde comienzo a eliminar los registro seleccionados
//lo puedes cambiar por un update o lo que necesites
//pongo el contador a cero
$con 0;
$eliminar $_POST["cEliminar"];
//con el while mientras haya registros seleccionados ira eliminando o actualizando
//no es lo que tu necesitas exactamente pero espero que te de una idea
while($cEliminar[$con] != '')
{
mysql_query("delete from `tblcliente` where `id_cli`='$cEliminar[$con]'");
$con++;
}
header("location:index2.php");
?>

</body>
</html>
Un saludo.
  #7 (permalink)  
Antiguo 27/03/2008, 08:09
Avatar de jose mario  
Fecha de Ingreso: abril-2007
Mensajes: 165
Antigüedad: 17 años
Puntos: 0
Pregunta Re: Update en un foreach Ayuda..

hey gracias por tu ayuda pero, en tu casa sulo se pasa una variable y la idea es pasar varias como nombre , precio de un producto, por aqui tengo un base de datos de mas 20,000 productos y para esatr modificando uno a uno es dificil ve como lo describo arriba de este texto.

La ideas un Update dentro de un foreach
Gracias lo tendrre en cuenta..
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:28.