Foros del Web » Programando para Internet » PHP »

problema con consullta

Estas en el tema de problema con consullta en el foro de PHP en Foros del Web. uso este codigo q me genera un calendario el cual al dar click en los dias me devuelve la fecha en dia/mes/año a otra pagina, ...
  #1 (permalink)  
Antiguo 07/12/2005, 10:45
 
Fecha de Ingreso: enero-2003
Mensajes: 516
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta problema con consullta



uso este codigo q me genera un calendario el cual al dar click en los dias me devuelve la fecha en dia/mes/año a otra pagina, todo eso esta bien, salvo q yo quiero q me busque en una bd mysql, cada dia a mostrar, es decir q en la bd hay una tabla q se llama programacion(idprogramacion,fecha,programa) donde fecha usa el formato yyyy-mm-dd , por eso en este calendario deseo hacewr una consulta y si ese dia esta eb la bd me muestre el link sino no muestre nada, espero haberme explicado bien

Código PHP:
     <?
                             
include("conex.inc.php");
            
if (
$calendario==1){
 
$mess =$_GET['mess'];
$anoss =$_GET['anoss'];
}else{
 
$messdate(m);
 
$anossdate(y);
}
echo 
CalendarioPHP($anoss,$mess2); 
//echo CalendarioPHP($anoss, $mess, 2);     
//para retroceder calendario
    
if ($mess==1){//
 
$anosant $anoss 1;
 
$mesant12;
}else{
    
$anosant $anoss;
    
$mesant$mess 1;    
    }        
// para avanzar calendario
if ($mess==12){//
 
$anosig $anoss 1;
 
$messig1;
}else{
$anosig$anoss;
$messig=$mess 1;
}

switch (
$mess) { 
    case 
"01" :$mesactual"Enero";break; 
    case 
"02" :$mesactual"Febrero";break; 
    case 
"03" $mesactual="Marzo";break; 
    case 
"04" $mesactual="Abril";break; 
    case 
"05" $mesactual="Mayo";break; 
    case 
"06" $mesactual="Junio";break; 
    case 
"07" :$mesactual="Julio";break; 
    case 
"08" :$mesactual"Agosto";break; 
    case 
"09" :$mesactual="Septiembre";break; 
    case 
"10" $mesactual="Octubre";break; 
    case 
"11" $mesactual="Noviembre";break; 
    case 
"12" :$mesactual="Diciembre";break; 
}; 
$anio_actual=date("Y",time()); 
$anio_actual=$anio_actual $anoss;
$fechaactual =$mesactual;

?>             

          

                                  <? 
function CalendarioPHP($year$month$day_heading_length 3){ 
// Parametros de aspecto del calendario 
$nombreFichero basename($_SERVER['PHP_SELF']); 
$ColorFondoCelda ''
$ColorFondoTabla ''
$ColorFechaDom='#990000';
$ColorFechaSem='#006699';
$AltoFechaSem='20';
$ColorFondoCeldasDiaSemana ''
$ColorFondoCeldasFestivo ''
$ColorFondoCeldaDiaActual ''
$ColorDiaLaboral '#000000'
$ColorDiaFestivo '#000000'
$ColorDiaActual '#000000';
$ColorDiaSem '#ffffff'
$TamanioFuente '1'
$TamanioFuenteFecha '2';
$TipoFuente 'Arial, Helvetica, sans-serif'
$TipoFuenteFecha 'Verdana, Arial, Helvetica, sans-serif'
$AnchoCalendario '451'
$AltoCalendario '350'
$AnchoCeldas '55'
$AltoCeldas '55'
$AlineacionHorizontalTexto 'top'
$AlineacionVerticalTexto 'left'
$programa='CAMINO A LA FAMA';



//Calculo la fecha actual 
$dia_actual=date("j",time()); 
$mes_actual=date("n",time()); 
$anio_actual=date("Y",time()); 

$first_of_month mktime (0,0,0$month1$year); 


//static $day_headings = array('Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo'); 
static $day_headings = array('Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'); 
$maxdays date('t'$first_of_month); #number of days in the month 
$date_info getdate($first_of_month); #get info about the first day of the month 
$month $date_info['mon']; 
$year $date_info['year']; 

switch (
$date_info['mon']) { 
    case 
"01" $date_info['month']="Enero";break; 
    case 
"02" $date_info['month']="Febrero";break; 
    case 
"03" $date_info['month']="Marzo";break; 
    case 
"04" $date_info['month']="Abril";break; 
    case 
"05" $date_info['month']="Mayo";break; 
    case 
"06" $date_info['month']="Junio";break; 
    case 
"07" $date_info['month']="Julio";break; 
    case 
"08" $date_info['month']="Agosto";break; 
    case 
"09" $date_info['month']="Septiembre";break; 
    case 
"10" $date_info['month']="Octubre";break; 
    case 
"11" $date_info['month']="Noviembre";break; 
    case 
"12" $date_info['month']="Diciembre";break; 
}; 


//Comienzo la tabla que contiene el calendario 
$calendar = ("<table "). 
(
"border='1' bordercolor='#FFFFFF' "). 
(
"height='".$AltoCalendario."' "). 
(
"width='".$AnchoCalendario."' "). 
(
"cellspacing='1' cellpadding='2' "). 
(
"bgcolor='".$ColorFondoTabla."'>\n"); 

//Cabecera de la tabla calendario 
//Use the <caption> tag or just a normal table heading. Take your pick. 
//$calendar .= "<caption class=\\"month\\">$date_info[month], $year</caption>\n"; 
$calendar .= ("<tr>\n"). 
(
"<th height='".$AltoCeldas."' colspan='7'>"). 
//("<font color='".$ColorDiaFestivo."' size=".$TamanioFuenteFecha." face='".$TipoFuenteFecha."'>"). 

("<table width='451' border='0' cellpadding='0' cellspacing='0'> <tr> <td width='267' height='19' bgcolor='#0097CF'>&nbsp;<span class='verdana'>&nbsp;<span class='style1'>".$programa."</span></span></td> <td width='28' background='../imagenes/img-internas/fondo-bar-red.gif'></td><td width='129' bgcolor='#D2114E' align='center'>").
(
"<font color='".$ColorDiaSem."' size=".$TamanioFuenteFecha." face='".$TipoFuenteFecha."'>"). 
(
"$date_info[month], $year"). 
(
"</font>").
(
"</td><td width='27' background='../imagenes/img-internas/fondo-bar-red.gif'></td> </tr></table>").
            
(
"</th>\n</tr>\n"); 
// Imprime los dias de la semana "Lun", "Mar", etc. 
// Si day_heading_length es 4, aparecerá el nombre entero del dia 
// si no, solo imprime los n primeros caracteres 
if($day_heading_length and $day_heading_length <= 4){ 
$calendar .= "<tr>\n"
foreach(
$day_headings as $day_heading){ 
$calendar .= ("<th height='".$AltoFechaSem."' abbr='".$day_heading."' class='dayofweek' bgcolor='".$ColorFechaSem."'>"). 
(
"<font color='".$ColorDiaSem."' size='".$TamanioFuente."' face='".$TipoFuenteFecha."'>"). 
//($day_heading_length != 4 ? substr($day_heading, 0, $day_heading_length) : $day_heading). 
($day_heading_length == substr($day_heading0$day_heading_length) : $day_heading). 
(
"</font>"). 
(
"</th>\n"); 

$calendar .= "</tr>\n"

$calendar .= "<tr>\n"

$weekday $date_info['wday']; //Para que sea el Domingo el primer dia de la semana 
//$weekday = $date_info['wday']-1; #weekday (zero based) of the first day of the month 
if ($weekday==-1$weekday=6//Por si el Domingo es el dia 1 del mes 
$day 1#starting day of the month 

// Cuidadin con los primeros dias "vacios" del mes 
if($weekday 0){ 
$calendar .= ("<td bgcolor='".$ColorFondoTabla). 
(
"' colspan='".$weekday."'></td>\n"); 


//Imprimimos los dias del mes 
while ($day <= $maxdays){ 
if(
$weekday == 7){ //Empieza una nueva semana 
$calendar .= "</tr>\n<tr>\n"
$weekday 0


//Miro si el dia que voy a pintar es festivo 
$esFestivo 0
$tmp_date=$day."/".$month
for (
$i=0;$i<14;$i++) { 
if (
$tmp_date==$DiasFestivos[$i]) {$esFestivo=1;break;} 


$calendar .= ("<td width='".$AnchoCeldas). 
(
"' height='".$AltoCeldas). 
(
"' align='".$AlineacionHorizontalTexto). 
(
"' valign='".$AlineacionVerticalTexto). 
(
"' "); 

// Coloreo el fondo dependiendo del dia en el que nos encontremos 
$calendar .= "bgcolor='"
if ((
$day==$dia_actual) and 
(
$month==$mes_actual) and 
(
$year==$anio_actual)) { //Si el dia es el de hoy 
$calendar .= $ColorFondoCeldaDiaActual
} else { 
// Si el dia no es el de hoy 
if (($weekday == 5) or ($weekday == 6) or ($esFestivo==1)) { // Si estoy en fin de semana weekday=5,6 
$calendar .= $ColorFondoCeldasFestivo
} else { 
$calendar .= $ColorFondoCelda
}; 
}; 
// Aqui es donde le pongo lo que tiene que hacer en caso de exista enlace 
//$link = (basename($_SERVER["PHP_SELF"]))."?fecha=".$month."/".$day."/".$year; 
$link player."?fecha=".$day."/".$month."/".$year."&prog=".$programa

$calendar .= "'><font color='";
$calendar .= $ColorDiaActual
$calendar .= ("' "). 
(
"size='".$TamanioFuente."' "). 
(
"face='".$TipoFuente."'><strong>".$day). 
(
"<br></strong></font>");
$fechaVal=$year."-".$month."-".$day;
//$fechaVal = mktime(0,0,0,$month,$day,$year);
echo $fechaVal;
echo 
"<br>";
echo 
$rsfechacon=mysql_query("select * from programacion where fecha='$fechaVal'");
                            
$row mysql_fetch_array($rsfechacon);
                          
$fechabd=mysql_result($rsfechacon,0,"fecha");
                        
                        echo 
$fechabd."<br>";
                            
/*$anioVal= substr($fecha,0,4);
                            $mesVal=substr($fecha,5,2);
                             $diaVal=substr($fecha,8,2);
                             echo "Dia:".$diaVal;
                              echo "Mes:".$mesVal;
                            echo "Año:".$anioVal;*/
if ($rsfechacon==1){//existencia de programa
$calendar .= "&nbsp;&nbsp;&nbsp;<a href='".$link."'><img src='../imagenes/calendar-images/loguito-0.png' width='37' height='35' border='0'></a>"
}else{
$calendar .= "&nbsp;&nbsp;&nbsp;<img src='../imagenes/calendar-images/loguito-gris.png' width='37' height='35' border='0'>"; ;

(
"</td>\n"); 
$day++; 
$weekday++; 


//Cuidadin con los ultimos dias vacios del mes 
if($weekday != 7){ 
$calendar .= '<td bgcolor="'.$ColorFondoTabla.'" colspan="' . ($weekday) . '"></td>'


//Chinnnnn pon, devolvemos toda la cadena calendario 
return $calendar "</tr>\n</table>\n"
// Fin de la funcion CalendarioPHP(año, mes, caracteres del dia) 


?>
__________________
El PISCO SOLO PUEDE SER PERUANO....SALUD!
  #2 (permalink)  
Antiguo 07/12/2005, 11:44
 
Fecha de Ingreso: enero-2003
Mensajes: 516
Antigüedad: 14 años, 11 meses
Puntos: 0
Exclamación

El problema esta basicamente aqui

Código PHP:
echo $rsfechacon=mysql_query("select * from programacion where fecha='$fechaVal'"); 
                            
$row mysql_fetch_array($rsfechacon); 
                          
$fechabd=mysql_result($rsfechacon,0,"fecha"); 
me sale este error:

2005-12-1
Resource id #3
Warning: mysql_result():

y se duplica por todos los dias del mes, alguien tin una idea de como solucionar esto

Última edición por asegoviaz; 10/07/2008 a las 23:08
  #3 (permalink)  
Antiguo 07/12/2005, 14:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Código PHP:
echo $rsfechacon=mysql_query("select * from programacion where fecha='$fechaVal'"); 
                            
$row mysql_fetch_array($rsfechacon); 
                          
$fechabd=mysql_result($rsfechacon,0,"fecha"); 
El "echo" a $rsfechacon o en general a un mysql_query() SIEMPRE va a devolver lo que ahí ves:
Resource id #3

Un "link" de conexión . .nada más NO resultados.

El
Código PHP:
 $row mysql_fetch_array($rsfechacon); 
no sé para que lo usas . .pero ahí no tiene sentido .. debes eliminarlo.

En condiciones normales . .antes de asegurar ir a un resultado .. deberías comprobar si existen resultados (un fallo en la consulta SQL . . etc podría originarlos .. así que .. controla ese problema):

Código PHP:
if (mysql_num_rows($rsfechacon)==1){
    
$fechabd=mysql_result($rsfechacon,0,"fecha");

Y en general para ver problemas de SQL o conexión deberías usar:
Código PHP:
$rsfechacon=mysql_query("select * from programacion where fecha='".$fechaVal."'") or die (mysql_error()); 
Así veras si arrastras algún problema y cual es concretamente ..


Un saludo,
  #4 (permalink)  
Antiguo 07/12/2005, 17:56
 
Fecha de Ingreso: enero-2003
Mensajes: 516
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta

Gracias, amigo
ya me salio
__________________
El PISCO SOLO PUEDE SER PERUANO....SALUD!
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 08:06.