Foros del Web » Programando para Internet » PHP »

¿Cual es mi error???......

Estas en el tema de ¿Cual es mi error???...... en el foro de PHP en Foros del Web. tengo este codigo: // cambiamos el estado de activacion despues de 45 dias if ($activo == "1" ){ $grabar = "UPDATE publicaciones SET activar='0' WHERE ...
  #1 (permalink)  
Antiguo 12/09/2005, 16:32
 
Fecha de Ingreso: septiembre-2004
Mensajes: 106
Antigüedad: 19 años, 6 meses
Puntos: 0
¿Cual es mi error???......

tengo este codigo:

// cambiamos el estado de activacion despues de 45 dias
if ($activo == "1" ){
$grabar = "UPDATE publicaciones SET activar='0' WHERE fecha_v <= '$fecha' " ;
mysql_query($grabar,$conexion) or die("No se pudo insertar los datos en la bd.");
}
No corre el script.-
  #2 (permalink)  
Antiguo 12/09/2005, 16:42
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
Prueba así: "UPDATE publicaciones SET activar='0' WHERE fecha_v <= '".$fecha."' ";

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #3 (permalink)  
Antiguo 12/09/2005, 16:52
 
Fecha de Ingreso: septiembre-2004
Mensajes: 106
Antigüedad: 19 años, 6 meses
Puntos: 0
Nada pana no funciona y no entiendo.- te anexo el script completo para ver cual es my error.
include ("conexion.php");
$sql= ("SELECT * FROM publicaciones ") or die ("No se Pudo establecer conexion con la bd");
$items =mysql_query($sql);
while ($item = mysql_fetch_array($items)){

$fecha_v = $item["fecha_v"];
$fecha_des = $item["fecha_des"];
$activo = $item["activar"];

$fecha = date ("Y-m-d H:i:s");
$desactivar = "0";

// cambiamos el estado de activacion despues de 45 dias
if ($activo == "1" ){
$grabar = "UPDATE publicaciones SET activar='0' WHERE fecha_v <= '".$fecha."' ";
mysql_query($grabar) or die("No se pudo insertar los datos en la base de datos.");
}

// eliminamos las publicaciones q no han sido activas despues de 7 dias
if ($activo == "0" ){
$eliminar = "Delete from publicaciones WHERE fecha_des <= '$fecha' ";
mysql_query($eliminar) or die("No se pudo eliminar los datos en la base de datos.");
}
mysql_close ($conexion);
echo $fecha;

}


?>
  #4 (permalink)  
Antiguo 12/09/2005, 17:07
Avatar de skatomundo  
Fecha de Ingreso: junio-2002
Ubicación: Santiago - CL
Mensajes: 2.532
Antigüedad: 21 años, 9 meses
Puntos: 125
Código:
$grabar = "UPDATE publicaciones ";
$grabar .= "SET activar = 0 WHERE fecha_v <= '$fecha' ";
echo $grabar;
//echale un viztazo a tu sql
te devuelve el DIE??
  #5 (permalink)  
Antiguo 12/09/2005, 17:09
Avatar de davidangel  
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 19 años
Puntos: 0
/*tu codigo debe estar asi
pero .. bueno dime como sabes determinas el valor de $activo(para cada registro)
me imagino q tiene un funcion para eso
bueno no entiendo como haces para saber si pasaron 45 dias o 7 dias en tu script no esta eso por eso me imagina q la variable $activo determina eso
bueno tu codigo no debe ocasionar errores

*/
<?

require_once("conexion.php");
$sql = "SELECT * FROM publicaciones ";
$items =mysql_query($sql) or die (mysql_error()."No se Pudo establecer conexion con la bd");
while ($item = mysql_fetch_array($items))
{
$fecha_v = $item["fecha_v"];
$fecha_des = $item["fecha_des"];
$activo = $item["activar"];
$fecha = date ("Y-m-d H:i:s");
$desactivar = "0";

// cambiamos el estado de activacion despues de 45 dias
if($activo == "1" )
{
$grabar = "UPDATE publicaciones SET activar='0' WHERE fecha_v <= '".$fecha."' ";
mysql_query($grabar) or die("No se pudo insertar los datos en la base de datos.");
}

// eliminamos las publicaciones q no han sido activas despues de 7 dias
if ($activo == "0" ){
$eliminar = "Delete from publicaciones WHERE fecha_des <= '$fecha' ";
mysql_query($eliminar) or die("No se pudo eliminar los datos en la base de datos.");
}
mysql_close ($conexion);
echo $fecha;

}

?>
  #6 (permalink)  
Antiguo 12/09/2005, 17:15
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Veamos, no toy seguro pero creo haber encontrado el error(o no), modifica a este codigo:
Código PHP:
 include ("conexion.php");
$sql"SELECT * FROM publicaciones ";
$items =mysql_query($sql$con) or die ("No se Pudo establecer conexion con la bd");
while (
$item mysql_fetch_array($items)){

$fecha_v $item["fecha_v"];
$fecha_des $item["fecha_des"];
$activo $item["activar"];

$fecha date ("Y-m-d H:i:s");
$desactivar "0";

// cambiamos el estado de activacion despues de 45 dias
if ($activo == "1" ){
$grabar "UPDATE publicaciones SET activar='0' WHERE fecha_v <= '$fecha' ";
mysql_query($grabar) or die("No se pudo insertar los datos en la base de datos.");
}

// eliminamos las publicaciones q no han sido activas despues de 7 dias
if ($activo == "0" ){
$eliminar "Delete from publicaciones WHERE fecha_des <= '$fecha' ";
mysql_query($eliminar) or die("No se pudo eliminar los datos en la base de datos.");
}
mysql_close ($conexion);
echo 
$fecha;


como veras basicanente lo que modifique fue
Código PHP:
 $sql= ("SELECT * FROM publicaciones ") or die ("No se Pudo establecer conexion con la bd");
$items =mysql_query($sql); 
por
Código PHP:
$sql"SELECT * FROM publicaciones ";
$items =mysql_query($sql$con) or die ("No se Pudo establecer conexion con la bd"); 
a ver si ahora va.

Nota: Supongo que conexion.php es mas o menos :
Código PHP:
<?
    
//conecto con la base de datos
    
$con mysql_connect("localhost","user","password") or die("No se pudo realizar la conexion con el servidor.");
    
//selecciono la BBDD
    
mysql_select_db("Base_de_datos",$con)or die("No se puede seleccionar BD");

?>
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #7 (permalink)  
Antiguo 12/09/2005, 17:21
 
Fecha de Ingreso: septiembre-2004
Mensajes: 106
Antigüedad: 19 años, 6 meses
Puntos: 0
si devuelve el die.- Nada probé y no corre .- no entiendo tengo en otra página un script parecido y se ejecuta bien pero aqui nose que pasa.-
  #8 (permalink)  
Antiguo 12/09/2005, 17:26
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
en lugar de poner un mensaje en el die, pone mysql_error() para ver el error y listo...

Código PHP:
// cambiamos el estado de activacion despues de 45 dias 
if ($activo == "1" ){
$grabar mysql_query("UPDATE `publicaciones` SET `activar`= '0' WHERE `fecha_v` <= '$fecha'") or die(mysql_error()); 

Fijate.. si funciona, además le agrege las comillas que son necesarias en SQL.
__________________
I Love Programming...
  #9 (permalink)  
Antiguo 12/09/2005, 17:47
 
Fecha de Ingreso: septiembre-2004
Mensajes: 106
Antigüedad: 19 años, 6 meses
Puntos: 0
las fecha estan grabadas en la bd, una vez que se ralizan las publicaciones.
Hay 4 fecha para compararlas:
1.- Fecha de publicacion = fecha_p
2.- Fecha de activacion de la publicacion = fecha_a
3.- Fecha de vencimiento = fecha_v (45 dias, despues de estos pasa a estado "0" desactivado y activado = "1")
4.- fecha de desactivacion = fecha_des, esta última borra los registros q no son activados.
Estoy es generando un script q las ejecute cuando entres al index y direccione al site.
Pero el error sigue, probé con el script de fulano y me lanza "No Database Selected" sigo probando....
  #10 (permalink)  
Antiguo 12/09/2005, 19:04
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 10 meses
Puntos: 2
Seguramente no estas seleccionando la DB... el codigo entero seria:

Código PHP:
$dbh=@mysql_connect ("localhost""usuario""password") or die("error en la DB");
@
mysql_select_db ("nombre_DB") or die("La Base de Datos seleccionada no existe");

// cambiamos el estado de activacion despues de 45 dias 
if ($activo == "1" ){ 
$grabar mysql_query("UPDATE `publicaciones` SET `activar`= '0' WHERE `fecha_v` <= '$fecha'") or die(mysql_error()); 

Tenes que cambiar los datos "usuario", "password" y "nombre_DB" por los que correspondan...
__________________
I Love Programming...
  #11 (permalink)  
Antiguo 13/09/2005, 02:50
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Cita:
Iniciado por FuLaNo_
Seguramente no estas seleccionando la DB... el codigo entero seria:

Código PHP:
$dbh=@mysql_connect ("localhost""usuario""password") or die("error en la DB");
@
mysql_select_db ("nombre_DB") or die("La Base de Datos seleccionada no existe");

// cambiamos el estado de activacion despues de 45 dias 
if ($activo == "1" ){ 
$grabar mysql_query("UPDATE `publicaciones` SET `activar`= '0' WHERE `fecha_v` <= '$fecha'") or die(mysql_error()); 

Tenes que cambiar los datos "usuario", "password" y "nombre_DB" por los que correspondan...

Con el error que comentas casi seguro este es el error, no obstante, y teniendo en cuenta que tienes un include ('conexion.php') te recomendaria que modificases el conexion.php y lo pusieses como esta en la respuesta que te di antes
Código PHP:
<?
    
//conecto con la base de datos
    
$con mysql_connect("localhost","user","password") or die("No se pudo realizar la conexion con el servidor.");
    
//selecciono la BBDD
    
mysql_select_db("Base_de_datos",$con)or die("No se puede seleccionar BD");

?>
modificando los datos para ajustarlos a tus necesidades, de todos modos si ya la tienes asi, comprueba que existe la Base de datos y que el nombre esta igual, ya que si usas servidor Linux este es case-sensitive.

Suerte.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #12 (permalink)  
Antiguo 13/09/2005, 06:42
 
Fecha de Ingreso: septiembre-2004
Mensajes: 106
Antigüedad: 19 años, 6 meses
Puntos: 0
Si mi error esta en lo q comento fulano en el (mysql), subi los script al servidor web y corrio perfectamente. Lo estaba trabajando y probando localmente y vi que tengo un error en el mysql, debe ser cuando lo instale.....
Gracias a todos por sus repuestas....
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 01:52.