Foros del Web » Programando para Internet » PHP »

Como comparar losa valores de cada fila y que realice determinada acción

Estas en el tema de Como comparar losa valores de cada fila y que realice determinada acción en el foro de PHP en Foros del Web. Hola amigos, soy nuevo por estos lugares, y necesito de su ayuda, miren estoy realizando un sistema de inventario, y llevo un control de ordenes ...
  #1 (permalink)  
Antiguo 20/07/2011, 08:54
 
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 9 meses
Puntos: 0
Mensaje Como comparar losa valores de cada fila y que realice determinada acción

Hola amigos, soy nuevo por estos lugares, y necesito de su ayuda, miren estoy realizando un sistema de inventario, y llevo un control de ordenes cambiando sus estado de incompleto a completo, el problema es que cada que realizo un cambi de estatus, hago un consulta que en caso de que todas mi filas esten como completo me cambien mi estado de mi orden de compra a completo, sin embargo aunque no tenga todas mi ordenes marcadas como completas, me lo cambia a completo, este es mi codigo


$sql100="SELECT estatus from detalleorden where idoc='$claveorden'";
$valor100=mysql_query($sql100,$conexion)or die ("error select sql20");
$filas=mysql_num_rows($valor100);
for($t=0;$t<$filas; $t++)
{
$status=mysql_result($valor100,$t,'status');
}
if($status==='completo'){


$sql222="update ordendecompra set status='completo' where idoc='$clave'";
$valor222=mysql_query($sql222,$conexion)or die ("error update sql 222");
}
  #2 (permalink)  
Antiguo 20/07/2011, 09:02
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Como comparar losa valores de cada fila y que realice determinada acción

y como envias los datos? desde un checkbox?
$clave no esta definido
  #3 (permalink)  
Antiguo 20/07/2011, 09:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Como comparar losa valores de cada fila y que realice determinada acción

Creo que tienes mal colocada una llave. Prueba así:

Código PHP:
$sql100="SELECT estatus from detalleorden where idoc='$claveorden'";
$valor100=mysql_query($sql100,$conexion)or die ("error select sql20");
$filas=mysql_num_rows($valor100);
for(
$t=0;$t<$filas$t++)
{
   
$status=mysql_result($valor100,$t,'status');

   if(
$status==='completo'){

      
$sql222="update ordendecompra set status='completo' where idoc='$clave'";
      
$valor222=mysql_query($sql222,$conexion)or die ("error update sql 222");
   }


EDITO: creo que no funciona lo que he puesto. Habría que ir cambiando la clave
  #4 (permalink)  
Antiguo 20/07/2011, 09:34
Avatar de gysato  
Fecha de Ingreso: junio-2010
Ubicación: Tuxtla Gtz, Chiapas
Mensajes: 88
Antigüedad: 13 años, 10 meses
Puntos: 9
Respuesta: Como comparar losa valores de cada fila y que realice determinada acción

A menos que no haya entendido no se porque no hacer esto:

Código PHP:
$sql100="SELECT estatus from detalleorden where idoc='$claveorden'";
$valor100=mysql_query($sql100,$conexion)or die ("error select sql20");
$rows=mysql_fetch_assoc($valor100);
$n=0;
foreach(
$rows as $row)
{
if(
$row['status']==='completo')
$n++;
}

if(
$n == count($rows)){
$sql222="update ordendecompra set status='completo' where idoc='$claveorden'";
$valor222=mysql_query($sql222,$conexion)or die ("error update sql 222");

Primero se mete en el arreglo $rows los detalles de la orden luego los recorremos registro por registro y checamos si esta completo para incrementar una variable que al final nos servira para verificar si todos estan completos y entonces si actualizar la orden a completa.

Salu2
  #5 (permalink)  
Antiguo 20/07/2011, 09:57
 
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 9 meses
Puntos: 0
Mensaje Respuesta: Como comparar losa valores de cada fila y que realice determinada acción

Cita:
Iniciado por gysato Ver Mensaje
A menos que no haya entendido no se porque no hacer esto:

Código PHP:
$sql100="SELECT estatus from detalleorden where idoc='$claveorden'";
$valor100=mysql_query($sql100,$conexion)or die ("error select sql20");
$rows=mysql_fetch_assoc($valor100);
$n=0;
foreach(
$rows as $row)
{
if(
$row['status']==='completo')
$n++;
}

if(
$n == count($rows)){
$sql222="update ordendecompra set status='completo' where idoc='$claveorden'";
$valor222=mysql_query($sql222,$conexion)or die ("error update sql 222");

Primero se mete en el arreglo $rows los detalles de la orden luego los recorremos registro por registro y checamos si esta completo para incrementar una variable que al final nos servira para verificar si todos estan completos y entonces si actualizar la orden a completa.

Salu2

Al parecer tu respuesta parece ser la que lleva un proceso de lectura en las filas mas correcto, sin embargo aun no me realiza el update!!
  #6 (permalink)  
Antiguo 20/07/2011, 11:16
 
Fecha de Ingreso: julio-2011
Mensajes: 3
Antigüedad: 12 años, 9 meses
Puntos: 0
Mensaje Respuesta: Como comparar losa valores de cada fila y que realice determinada acción

Les agradesco a todos su ayuda, ya encontre una forma de como realizar ese proceso, la forma era realizando una consulta e indicando que fuera diferente de completo, en caso de que el valor de las filas fuera diferente de 0 me cambia mi estaus a parcial y en caso contrario me lo cambia a completo, le anexo el codigo para consultas futuras

Código PHP:
if($control){
if(
$filas!=0)
{
//"Proceso 1";
$sql1="update ordendecompra set estatus='parcial' where idorden=$claveorden";
$valor1=mysql_query($sql1$conexion) or die ("error");
}
else
{
//"Proceso 2";
$sql2="update ordendecompra set estatus='completo' where idorden=$claveorden";
$valor2=mysql_query($sql2$conexion) or die ("error");
}
$control=1;} 

Etiquetas: fila, sql
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 06:58.