Comunidad de diseño web y desarrollo en internet online

PROBLEMA CON UPDATE

Citar            
MensajeEscrito el 04 Dic 2012 03:45 pm
Buenos días a todos, pasa lo siguiente, tengo varios registros y lo que necesito es que al darle a uno anular me desaparesca de la tabla al cambiarle el estado, creo que la variable me la está pasando bien, pero no me hace el update, tengo lo siguiente:

Código PHP :

<a href="modificaciones/anularop.php?accion=anular&orden=<?php echo $orden; ?>"><img src='imgs/cerrar.png' height="30" width="30" border="0"/></a>


y en el archivo anular OP tengo esto:

Código PHP :

<?php
include ("../conexion_bd.php");
   mb_internal_encoding( 'UTF-8' );
   session_start();
   $_SESSION['rol'];
   $_SESSION['nombre'];
   $_SESSION['ultimoAcceso']; 
   
function actual_date ()  {  
   $months = array ("", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");  
   $year_now = date ("Y");  
   $month_now = date ("n");  
   $day_now = date ("j");  
   $week_day_now = date ("w");  
   $date = $day_now . " de " . $months[$month_now] . " de " . $year_now;   
   return $date;
}
if(isset($_GET['orden'])){
   $orden=$_GET['orden'];
   if(isset($_GET['accion'])){
      $result = mysql_query("SELECT Historial_ediciones FROM ordenes WHERE Numero='$orden' ",$con);
      while($row = mysql_fetch_array($result)){
         $historial=$row['Historial_ediciones'];
      }
      if($_GET['accion']=="anular"){
         $actdate=actual_date();
         $historial .= "<br/>OP anulada el ".$actdate." por: ". $user .".";
         mysql_query("UPDATE ordenes SET Estado = '8', Responsable = 'T&M', Historial_ediciones='$historial' WHERE Numero = '$orden'");
         header( 'Location: ../tabla.php');
      }
         }
   else{
      header( 'Location: ../home.php');
   }
}
else{
   header( 'Location: ../home.php') ;
}
?>


Va y vuelve a tabla.php pero no hace el UPDATE, alguien sabe que estoy haciendo mal?? Soy muy nueva en esto, muchas gracias....

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

chrome
Citar            
MensajeEscrito el 04 Dic 2012 04:24 pm
para revisar lo que pasa podrias comentar la linea de a

Código PHP :

//header( 'Location: ../tabla.php');

y pruebes podria ser que tu consulta no este bien armada

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Dic 2012 04:48 pm
Gracias por la respuesta, sólo me dice que la variable historial no está definida, pero si lo está $historial=$row['Historial_ediciones']; y la consulta está 4 lineas más arriba...

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

chrome
Citar            
MensajeEscrito el 04 Dic 2012 04:57 pm
mmmm , cual es el error que te lanza PHP exactamente, ya que por lo qu veo esta bien ,lo unico que podria estar es la parte en que pides los datos a mysql, que talvez no te estan retornando lo que pides,
otra observacion mira, que pasa cuando no entra al BUCLE

Código PHP :

while($row = mysql_fetch_array($result)){
         $historial=$row['Historial_ediciones'];
      }

la variable $historial no se instanciaria y por eso te dara error de variable no definida
ya que esto

Código PHP :

 $historial .= "<br/>OP anulada el ".$actdate." por: ". $user .".";

en realidad hace esto

Código PHP :

 $historial =   $historial . "<br/>OP anulada el ".$actdate." por: ". $user .".";

solo que el otro es mas corto pero a la final el mismo proceso por eso el error que te lanza de variable no definida,tomando en cuenta , estoy sospechando que la consulta no se ejecuta por que sus condicionales del UPDATE tampoco se cumplen

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Dic 2012 05:09 pm
Deberías asegurar que:

Código PHP :

mysql_query("SELECT Historial_ediciones FROM ordenes WHERE Numero='$orden' ",$con);

devuelve algún resultado. O no hay un error en la sentencia SQL.
Si ocurre alguna de estas dos cosas $historia NO estará definida.
Inmediatamente después de ejecutar cualquier mysql_query() debes ejecutar mysqli_error() para que te muestre los posibles errores que la consulta pueda tener.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 04 Dic 2012 05:29 pm
Muchas gracias, ahora con mysqli_error() me di cuenta que en realidad estaba llamando a otra variable, ya hace el update, ahora otra pregunta hay alguna manera de que la fila modificada ya no se muestre en la tabla como esconderla? Gracias.

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

chrome
Citar            
MensajeEscrito el 04 Dic 2012 05:47 pm
Señores, muchas gracias por la ayuda, lo solucioné con NOT IN en la consulta...

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

chrome
Citar            
MensajeEscrito el 04 Dic 2012 07:22 pm
Noooo, tengo otro problema utilicé ... WHERE Estado!=8" si publico solo esta pagina y he iniciado sesion funciona perfecto, pero al volver a entrar desde el login me saca este error:
Warning: mysql_fetch_array() expects parameter 1 to be resource... lo mismo si utilizo NOT IN, y ya no me muestra ningun dato, saben que puede ser?....

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

chrome
Citar            
MensajeEscrito el 05 Dic 2012 12:15 pm
Insisto, debes verificar el mensaje de error después de ejecutar cualquier sentencia SQL.
En SQL para la desigualdad se usa el operador "<>" (menor que, mayor que).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 05 Dic 2012 01:13 pm
Hola, el mensaje que me saca es este:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (Estado='1' OR Estado='2' OR Estado='3' OR Estado='4' OR Estado='5' OR Est' at line 1

y La consulta está así:

$pedido="SELECT Numero, Cliente, Tema_General, Responsable, Estado FROM ordenes WHERE Estado <> '8'";

Lo raro es que si elimino todo lo del where no saca ningún error, pero necesito que no me muestre en la tabla lo que está en estado 8....

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

chrome
Citar            
MensajeEscrito el 05 Dic 2012 01:20 pm
ejecuta los dos querys directamente sobre la base de datos hay sabes que te retorna cada uno y que esta ocurriendo

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

chrome
Citar            
MensajeEscrito el 05 Dic 2012 02:33 pm
Esperen todos los que leen el POST, alejilla se refiere a otra pagina, no es el codigo que publico,alejilla corrigeme si me equivoco

alejilla escribió:

Hola, el mensaje que me saca es este:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (Estado='1' OR Estado='2' OR Estado='3' OR Estado='4' OR Estado='5' OR Est' at line 1

y La consulta está así:

$pedido="SELECT Numero, Cliente, Tema_General, Responsable, Estado FROM ordenes WHERE Estado <> '8'";

Lo raro es que si elimino todo lo del where no saca ningún error, pero necesito que no me muestre en la tabla lo que está en estado 8....

bueno antes de seguir con esto aclaranos de donde viene esa consulta osea algo de codigo PHP, para que podamos ubicarnos :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 Dic 2012 03:03 pm
si, terminé desviandome del tema, voy a abrir otro post para que no nos enredemos... Gracias.

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.