Foros del Web » Programando para Internet » PHP »

Problema PHP + SQL SERVER

Estas en el tema de Problema PHP + SQL SERVER en el foro de PHP en Foros del Web. Hola amigos, tengo una duda q ya me tiene hasta la ma..... les platico rapidamente, tengo un formulario muy simple en php con un combo ...
  #1 (permalink)  
Antiguo 13/04/2011, 17:04
Avatar de heap811019  
Fecha de Ingreso: enero-2011
Ubicación: Mexico DF
Mensajes: 40
Antigüedad: 13 años, 3 meses
Puntos: 1
Pregunta Problema PHP + SQL SERVER

Hola amigos, tengo una duda q ya me tiene hasta la ma..... les platico rapidamente, tengo un formulario muy simple en php con un combo (8 opciones = 8 tablas en las que se puede hacer la consulta) y manda la busqueda en SQL SERVER, ya se conecta y hace las consultas....el detalle es el siguiente...solo funciona en 6 de las 8 tablas posibles....y no entiendo el porque? ya que el codigo que uso es el mismo para las 8 consultas. les muestro los codigos de ambos archivos:

ARCHIVO NOMINA.PHP
Código PHP:
<html>
<head> <title> Reportes </title> </head>
<body>
<center>
<form enctype="multipart/form-data" action="busca.php" method="post">
<?php 
  
echo'<b>Numero de Pension:</b>';
  echo
'<input type="text" name="pension" size="20" ';
  echo
'<br>';echo'<br>';
  echo
'<b>Año de consulta:</b>';
?>
<select name="anio">
<option value="">-Selecciona un año-</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
<option value="2009">2009</option> //en esta tabla no funciona
<option value="2010">2010</option> //en esta tabla no funciona
<option value="2011">2011</option>
</select> 
<br><br>

<input type="submit" value="Buscar">
</form></center></body></html>
Y el archivo de la busqueda...es muy largo, entonces les pongo el codigo q uso para el año 2011 q si funciona y para 2010 que no funciona.

Como dato curioso, las tabla 2009 y 2010 son las mas grandes: 8,197,086 y 9,051,565 registros. A comparacion de 2008 que tiene 7,436,472 registros.

Código PHP:
 if($anio==2011)
  {
  
$nom11=mssql_query("select [numero usuario] as clave, 
                    [clave del registro federal del causante] as rfc,
                       [nombre del trabajador] as nombre,
                       CEILING ([Clave de Cobro del Trabajador]) as pension,
                       [fecha de movimiento desde] as fecha,
                       [descuento por prestamos personales] as descuento
                from nomina11
                where [clave de cobro del trabajador]= $pen
                order by FECHA asc"
,$conn);
  
      echo
'<table width="90%" border="1">';
      echo
'<tr>';
      echo
'<th width="15%"><b> CLAVE </b></th>';
      echo
'<th width="15%"><b> RFC </b></th>';
      echo
'<th width="30%"><b> NOMBRE </b></th>';
      echo
'<th width="15%"><b> PENSION </b></th>';
      echo
'<th width="10%"><b> FECHA </b></th>';
      echo
'<th width="15%"><b> DESCUENTO </b></th>';
      echo
'</tr>';
    while (
$row=mssql_fetch_array($nom11)){
          echo
'<tr align="center" valign="middle">';
          echo
'<td>';                    
          echo
''.$row["clave"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["rfc"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["nombre"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["pension"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["fecha"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["descuento"].'';
          echo
'</td>';
          echo
'</tr>';}
      
mssql_free_result($nom11);
      echo
'</table>';
  }
 elseif(
$anio==2010)
  {
   
$nom10=mssql_query("select [numero usuario] as clave, 
                       [clave del registro federal del causante] as rfc,
                       [nombre del trabajador] as nombre,
                       CEILING ([Clave de Cobro del Trabajador]) as pension,
                       [fecha de movimiento desde] as fecha,
                       [descuento por prestamos personales] as descuento
                from nomina10
                where CEILING([clave de cobro del trabajador])= $pen
                order by FECHA asc"
,$conn);   //AQUI ES 1ER WARNING
  
      
echo'<table width="90%" border="1">';
      echo
'<tr>';
      echo
'<th width="15%"><b> CLAVE </b></th>';
      echo
'<th width="15%"><b> RFC </b></th>';
      echo
'<th width="30%"><b> NOMBRE </b></th>';
      echo
'<th width="15%"><b> PENSION </b></th>';
      echo
'<th width="10%"><b> FECHA </b></th>';
      echo
'<th width="15%"><b> DESCUENTO </b></th>';
      echo
'</tr>';
    while (
$row mssql_fetch_array($nom10)){  //AQUI ES 2DO WARNING
          
echo'<tr align="center" valign="middle">';
          echo
'<td>';                    
          echo
''.$row["clave"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["rfc"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["nombre"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["pension"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["fecha"].'';
          echo
'</td>';
          echo
'<td>';
          echo
''.$row["descuento"].'';
          echo
'</td>';
          echo
'</tr>';}
      
mssql_free_result($nom10);     //AQUI ES 3ER WARNING
      
echo'</table>';
  } 
cabe mencionar que los errores q me arroja son:

Warning: mssql_query() [function.mssql-query]: Query failed in C:\AppServ\www\busca.php on line 70

Warning: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in C:\AppServ\www\busca.php on line 81

Warning: mssql_free_result(): supplied argument is not a valid MS SQL-result resource in C:\AppServ\www\busca.php on line 102

Alguna idea de donde esta el error ???
Gracias de antemano
www.pittmx.com
  #2 (permalink)  
Antiguo 13/04/2011, 17:13
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema PHP + SQL SERVER

cual es la linea 70??

editado: sorry, ya vi

lo que tienes en el where como
Código SQL:
Ver original
  1. WHERE CEILING([clave de cobro del trabajador])= $pen
no debería de ser
Código SQL:
Ver original
  1. WHERE [clave de cobro del trabajador]= $pen
no entiendo mucho lo que logras con la consulta y como haces la búsqueda para las demás fechas, ya que allí solo se trabaja cuando sea 2011 o 2010 y la variable $pen de donde lo tomas, te recomiendo que imprimas la consulta y te fijes si es correcta, puedes hacer algo como esto
Código PHP:
Ver original
  1. echo $sql="select [numero usuario] as clave,  [clave del registro federal del causante] as rfc, [nombre del trabajador] as nombre, CEILING ([Clave de Cobro del Trabajador]) as pension, [fecha de movimiento desde] as fecha, [descuento por prestamos personales] as descuento from nomina10 where CEILING([clave de cobro del trabajador])= $pen order by FECHA asc";
  2. $nom10=mssql_query($sql,$conn);
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 13/04/2011 a las 17:25

Etiquetas: server, 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 22:02.