Foros del Web » Programando para Internet » PHP »

Me bota un error que está como raro...¿¿¿ ???

Estas en el tema de Me bota un error que está como raro...¿¿¿ ??? en el foro de PHP en Foros del Web. A veces creo que esta pagina esta embrujada. Estaba funcionando perfectamente y hace tiempo no le metia mano al codigo. Y resulta que ahora de ...
  #1 (permalink)  
Antiguo 04/12/2007, 22:30
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Me bota un error que está como raro...¿¿¿ ???

A veces creo que esta pagina esta embrujada.

Estaba funcionando perfectamente y hace tiempo no le metia mano al codigo.

Y resulta que ahora de un dia para otro, me esta botando este error, que no se de donde salio si esa parte no la he manipulado en absoluto:

Cita:
Warning: Invalid argument supplied for foreach() in /home/content/a/u/t/webwebweb/html/include/functions.php on line 216

Fatal error: Error on executing INSERT INTO autop10_stat_report SET member_id='44', stock = '1011927396', year = '2007', month = 'December', cnt_week = 1 in /home/content/a/u/t/paginaweb/html/details.php on line 140
La funcion de la linea 216 que dice ahi es esta:

Código PHP:
function getWeekNumber($arrayWeeksInMonth,$week)
{
    
$cnt=1;
    foreach(
$arrayWeeksInMonth AS $weekKey=>$weekValue)
    {
        if(
$weekKey == $week)
            return 
$cnt;
        
$cnt++;
    }

    return 
false;

Segun entiendo esta funcion no se esta ejecutando por un fallo de sintaxis con el "FOREACH" y por eso no esta haciendo el INSERT en la base de datos.

- Lo que no entiendo es, que es lo que esta mal con ese FOREACH, estaba funcionando bien, y ahora pasa esto.

- Lo otro raro, es que si le doy "refrescar" o F5 en esa pagina de error, ya me la carga bien, es a la primera carga que bota el error.

Que es?? quien por favor me echa una mano?

GRACIAS!!
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.

Última edición por SI TAN SOLO TUVIERA; 05/12/2007 a las 21:36
  #2 (permalink)  
Antiguo 04/12/2007, 23:53
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Re: Me bota un error que está como raro...¿¿¿ ???

Ni siquiera estás desplegando todo el código, ni sabemos si es sobre MySQL o SQL tu base de datos (aunque parece más a un error de DB con síntaxis, todo en uno)
  #3 (permalink)  
Antiguo 05/12/2007, 02:02
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Re: Me bota un error que está como raro...¿¿¿ ???

Cita:
Warning: Invalid argument supplied for foreach() in /home/content/a/u/t/autopten/html/include/functions.php on line 216
significa que no le estas pasando un array, en tu caso $arrayWeeksInMonth no es un array. Usa is_array() para devolver un algo cuando el parametro no es un array.
  #4 (permalink)  
Antiguo 05/12/2007, 08:56
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Me bota un error que está como raro...¿¿¿ ???

GRACIAS Darkj, tu respuestas es mas concisa. Voy a mirar lo que me dices.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #5 (permalink)  
Antiguo 05/12/2007, 09:00
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: Me bota un error que está como raro...¿¿¿ ???

Pues si tienes razpon mis compañeros...
Y bueno, verifca que la variable que le estas pasando a tu función getWeekNumber() sea un array y que no sea nula porque si no nunca va entrar en el foreach.

Saludillos.
  #6 (permalink)  
Antiguo 05/12/2007, 21:03
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Me bota un error que está como raro...¿¿¿ ???

Gracias por la ayuda.

Les pregunto entonces, porque creen que si doy F5 o refrescar en esta pagina de error despues de que la muestra, ya me carga bien sin problemas?? a que se deberá? y solo pasa cuando entro por medio de los resultados de una busqueda, pero si entro directamente en el link sin pasar por ninguna busqueda, solo copiandolo en el navegador, no me bota el error.

No he dado con el problema

Gracias.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.

Última edición por SI TAN SOLO TUVIERA; 05/12/2007 a las 21:15
  #7 (permalink)  
Antiguo 05/12/2007, 21:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Me bota un error que está como raro...¿¿¿ ???

Deberias de publicar el codigo completo para poder hacer un analisis mas adecuado.

Saludos.
  #8 (permalink)  
Antiguo 05/12/2007, 21:28
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Me bota un error que está como raro...¿¿¿ ???

Gracias por la ayuda, encontre un backup que funciona y como no encontre el error a simple vista me voy a tener que poner a comparar linea por linea a ver que es lo que tiene el mas actualizado... demas que es un punto y coma o una comilla por ahi mal puesta.

Perdon por no poner todo el codigo, el de ambas pagina sumas casi 2000 lineas y pues....mucho pedir..

Gracias!!
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #9 (permalink)  
Antiguo 05/12/2007, 22:42
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: Me bota un error que está como raro...¿¿¿ ???

se puede solucioanr facilmente forzando el tipo de dato (array)

foreach((array)$arrayWeeksInMonth AS $weekKey=>$weekValue)

si el arreglo q le llega a la funcion no vino por alguan razon o esta vacio esto hara q funcione si tirar error y si esta vacio no hara el bucle
saludos
__________________
Degiovanni Emilio
developtus.com
  #10 (permalink)  
Antiguo 05/12/2007, 23:05
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Me bota un error que está como raro...¿¿¿ ???

gracias emiliodeg, voy a probar lo que dices, porque nada que doy con el problema. Es raro, unas veces carga bien, otras veces bota ese error, si bota el error dando F5 ya carga la pagina y no vuelve a molestar.. que dolor de cabeza, que me hace pensar que debe haber una congestion en la BD, o han de haber quedado mal programadas o algo...

Creo que esta la otra parte del codigo que me habia faltado postear.

Cita:
Fatal error: Error on executing INSERT INTO autop10_stat_report SET member_id='44', stock = '1011927396', year = '2007', month = 'December', cnt_week = 1 in /home/content/a/u/t/lapagina/html/details.php on line 140
Donde termina este codigo, es la linea 140 que marca el error.

Código PHP:
/*********************************STATISTICS REPORT*****************************/
    
$stats_week date('W');
    
$stats_month date('F');
    
$stats_year date('Y');
    
$months_array = array('January'=>'01','February'=>'02','March'=>'03','April'=>'04','May'=>'05','June'=>'06','July'=>'07','August'=>'08','September'=>'09','October'=>'10','November'=>'11','December'=>'12');
    
$arrWeeks =  getWeeksInMonth($months_array[$stats_month],$stats_year);
    
$databaseWeek getWeekNumber($arrWeeks,$stats_week);
    
    
$sqlStatReportCheck "SELECT id 
                               FROM "
.$db_prefix."stat_report 
                           WHERE member_id='"
.$member_id."' 
                             AND stock = '"
.$stock."' 
                             AND year = '"
.$stats_year."' 
                             AND month = '"
.$stats_month."'";
    
    
$rsStatReportCheck mysql_query($sqlStatReportCheck)
        or 
trigger_error('Error on executing '.$sqlStatReportCheckE_USER_ERROR);    
    
    if(
mysql_num_rows($rsStatReportCheck)==0)
    {
        
$sqlStatReportStart "INSERT INTO ";
        
$sqlStatReportEnd " ";
        
$cntWeekUpdate "1";
    }
    else
    {
        list(
$statReportID) = @mysql_fetch_row($rsStatReportCheck);
        
$sqlStatReportStart "UPDATE ";


        
$sqlStatReportEnd " WHERE id='".$statReportID."'";
        
$cntWeekUpdate "cnt_week".$databaseWeek." + 1";
    }
    
    
$sqlStatReport $sqlStatReportStart." ".$db_prefix."stat_report SET 
                            member_id='"
.$member_id."',
                            stock = '"
.$stock."',
                            year = '"
.$stats_year."',
                            month = '"
.$stats_month."',
                            cnt_week"
.$databaseWeek." = ".$cntWeekUpdate."
                            "
.$sqlStatReportEnd;
                            
    
    @
mysql_query($sqlStatReport) or 
        
trigger_error('Error on executing '.$sqlStatReportE_USER_ERROR);    

Cualquier ayuda les agradezco, probare lo que dice emiliodeg....

....
...
..

Poniendo como dice emiliodeg ::: foreach((array)$arrayWeeksInMonth AS $weekKey=>$weekValue) ::: me soluciona el primer error que no reconoce el array.. pero aun me sigue botando el segundo...

Cita:

Fatal error: Error on executing INSERT INTO autop10_stat_report SET member_id='51', stock = '195962', year = '2007', month = 'December', cnt_week = 1 in /home/content/a/u/t/url/html/details.php on line 140
Esta loca la BD..
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.

Última edición por SI TAN SOLO TUVIERA; 05/12/2007 a las 23:11
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 13:38.