Autor Tema: error en consulta mysql  (Leído 1472 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado egamarra78

  • Novato
  • *
  • Mensajes: 9
  • Puntuación: -1
    • Ver Perfil
error en consulta mysql
« : 26 de octubre de 2013, 01:18:04 pm »
buenas tardes, estoy generando una consulta con php y mysql, pero uso dreamweaver cs3 y cs6, el prolema es que antes de mostrar los datos de la consulta me muesta lineas en blanco en la misma cantidad que el numero de registros de la consulta. Si coloco un encabezado antes de la tabla me aparece bien el conflicto es cuando comienza a mostrar la tabla. He revisado el codigo y no observo nada anormal. De antemano me disculpo por usar dreamweaver pero nadie es perfecto. Por favor si me pueden ayudar.

Desconectado csalazart33

  • Novato
  • *
  • Mensajes: 20
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Hospedaje Web a Medida
Re:error en consulta mysql
« Respuesta #1 : 26 de octubre de 2013, 02:43:39 pm »
Bueno amig@...
1.Si v a usar DW pues te recomiendo un tutorial para DW y PHP  si lo kieres usar asi... Si no sabes programar en PHP,
2. Ahora si sabes programar en PHP entonces olvida un poco el DW y conoce otros IDEs asi podras aprender a programar en PHP y deja el DW para el HTMLy el diseño..  no estoy diciendo que este malo tambien comence con DW pero es un buen concejo para Avanzar y Crecer en PHP..

Podrias colcoar algo del código para ver mejor, el problema tambien es posible que sea algo de las instrucciones de DW, si  es que lo usas para construir las instrucciones, si solo lo usas para el diseño puede ser otra cosa..

Lo otro que podria estar pasando es la BD revisa que no te traigas registros en blancos eso podria ser. Puedes probar la Isnctruccion SQL directamente en la Base de datos a ver que resultado te devuelve y si es el mismo ya sabes que es la instruccion o la BD..

Por cierto te Recomiendo Date una Vueltica por mi Tienda donde encontraras unos tutos bastante interesantes.. Aun le fala pero te da una idea.
« Última Modificación: 26 de octubre de 2013, 03:01:52 pm por csalazart33 »
<---------------------->
Carlos A Salazar
Desarrollo Web
Web Hosting
www.symfony-project.com.ve
www.tuhostingweb.com

Desconectado egamarra78

  • Novato
  • *
  • Mensajes: 9
  • Puntuación: -1
    • Ver Perfil
Re:error en consulta mysql
« Respuesta #2 : 29 de octubre de 2013, 11:33:27 am »
este es el codigo:
Código: [Seleccionar]
<!DOCTYPE html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Detalle de Nomina</title>
</head>
<body>
<h2><div align="center">Relacion Conceptos de Nomina
  <h3>
</div></h2>
<table align="center" border='1'>
<tr>
<th>Ficha</th>
<th>Apellidos y Nombres</th>
<th>Cargo</th>
<th>Ingreso</th>
<th>Sueldo</th>
</tr>
<?php
$i
=0
$asig=0;
$deduc=0;
$neto=0;
$totasig=0;
$totdeduc=0;
$totneto=0;
$pase=1;
$registro=1;
mysql_connect("localhost","root","");
mysql_select_db("nomina");
$consulta mysql_query("SELECT asigdeduc.idficha, personal.apenom, personal.fechaingreso, personal.cargo, personal.sueldo, asigdeduc.idconcepto, conceptos.descripcion, asigdeduc.asignacion, asigdeduc.deduccion, asigdeduc.fechapago  FROM asigdeduc, personal, conceptos WHERE asigdeduc.idficha=personal.idficha and asigdeduc.idconcepto=conceptos.idconcepto ORDER BY asigdeduc.idficha, asigdeduc.idconcepto");
$cuantomysql_num_rows($consulta);
//echo "total Registros"."  ".$cuanto."<br>";

while ($row=mysql_fetch_array($consulta)){
$ficha=$row["idficha"];
if($pase==1){
$trabajador=$row["idficha"];
$fechapago=$row["fechapago"];
$pase=2;
        
echo '<tr><td align="center">'.$trabajador.'</td>';
         
echo '<td>'.$row['apenom'].'</td>';
         
echo '<td>'.$row['cargo'].'</td>';
echo '<td align="center">'.$row['fechaingreso'].'</td>';
         
echo '<td>'.$row['sueldo'].'</td></tr>';
          
//Cierro el if del pase=1
}
if($trabajador!=$ficha){
$neto=$asig-$deduc;
$totasig=$totasig+$asig;
$totdeduc=$totdeduc+$deduc;
$totneto=$totneto+$neto;
// muestro los subtotales por trabajador
   
echo '<tr><td>'." ".'</td>';
  
echo '<td>'." ".'</td>';
   
echo '<td>'.$asig.'</td>';
   
echo '<td>'.$deduc.'</td>';
   
echo '<td>'.$neto.'</td></tr>'."<br>";
$trabajador=$row["idficha"];
$asig=0;
$deduc=0;
$neto=0;
echo '<tr><td align="center">'.$trabajador.'</td>';
         
echo '<td>'.$row['apenom'].'</td>';
          
echo '<td align="center">'.$row['cargo'].'</td>';
         
echo '<td>'.$row['fechaingreso'].'</td>';
         
echo '<td>'.$row['sueldo'].'</td></tr>'."<br>";
//Ahora coloco los conceptos
echo '<tr><td align="center">'.$row["idconcepto"].'</td>';
  
echo '<td>'.$row["descripcion"].'</td>';
   
echo '<td>'.$row["asignacion"].'</td>';
   
echo '<td>'.$row["deduccion"].'</td>';
   
echo '<td>'." ".'</td></tr>';
$asig=$asig+$row["asignacion"];
$deduc=$deduc+$row["deduccion"];
//cierro el if de distinto
}
else{
if($trabajador==$ficha)
{
echo '<tr><td align="center">'.$row["idconcepto"].'</td>';
  
echo '<td>'.$row["descripcion"].'</td>';
   
echo '<td>'.$row["asignacion"].'</td>';
   
echo '<td>'.$row["deduccion"].'</td>';
   
echo '<td>'." ".'</td></tr>';
$asig=$asig+$row["asignacion"];
$deduc=$deduc+$row["deduccion"];
// $totasig=$totasig+$asig;
// $totdeduc=$totdeduc+$deduc;
$totneto=$totneto+$neto;
}
//cierro el else
}
//pregunto si es el ultimo registro
if($cuanto==$registro)
{
$neto=$asig-$deduc;
$totasig=$totasig+$asig;
$totdeduc=$totdeduc+$deduc;
$totneto=$totneto+$neto;
// muestro los subtotales por trabajador
   
echo '<tr><td>'." ".'</td>';
  
echo '<td>'." ".'</td>';
   
echo '<td>'.$asig.'</td>';
   
echo '<td>'.$deduc.'</td>';
   
echo '<td>'.$neto.'</td></tr>'."<br>";
//Ahora los totales
echo '<tr><td>'." ".'</td>';
  
echo '<td>'." ".'</td>';
   
echo '<td>'.$totasig.'</td>';
   
echo '<td>'.$totdeduc.'</td>';
   
echo '<td>'.$totneto.'</td></tr>'."<br>";
}
//Cierro el while
$registro++;
}
?>

</table>

</body>
</html>
Les comento: La consulta la realiza excelente solo que despues del titulo inserta libeas en blanco y luego la tabla, ya probe fuera de dreamweaver y sigue igual..
« Última Modificación: 29 de octubre de 2013, 11:49:05 am por Alexander Garzon »

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:error en consulta mysql
« Respuesta #3 : 29 de octubre de 2013, 10:49:32 pm »
bueno la verdad hay mucho camino por recorrer pero se empieza por un lado, voy a hacerte algunas observaciones para que mejores
1.- una etiqueta <tr></tr> ya te hace el salto de linea no es necesario el <br /> que colocas en tu código por eso debe de estarse generando los saltos que indicas, los iba a quitar pero la flojera me agarro =S.
2.- identación, según el standar se debe de dar 4 espacios, no tabs ni nada de eso, fíjate como quedo el mismo código que tu colocaste mucho mas legible.
3.- separación de lógica de negocio de vista, de manera que se haga más fácil el mantenimiento del mismo código.
4.-  la extensión mysql de php esta declarada obsoleta, en su lugar debe de usarse mysqli o pdo (mi elección personal PDO ).

como coloque en un post anterior a todos los ando mandando para http://lamaneracorrecta.php.org.ve/, mientras mas te instruyas en el lenguaje mas vas a agarrale gusto a este link que te acabo de pasar y vas a mandar a tus compañeros, porque los standares son para seguirlos

tu código identado
Código: [Seleccionar]
<!DOCTYPE html >
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Detalle de Nomina</title>
    </head>
    <body>
        <h2><div align="center">Relacion Conceptos de Nomina</div></h2>
        <table align="center" border='1'>
            <tr>
                <th>Ficha</th>
                <th>Apellidos y Nombres</th>
                <th>Cargo</th>
                <th>Ingreso</th>
                <th>Sueldo</th>
            </tr>
            <?php
            $i
=0
            
$asig=0;
            
$deduc=0;
            
$neto=0;
            
$totasig=0;
            
$totdeduc=0;
            
$totneto=0;
            
$pase=1;
            
$registro=1;
            
mysql_connect("localhost","root","");
            
mysql_select_db("nomina");
            
$consulta mysql_query("SELECT asigdeduc.idficha, personal.apenom, personal.fechaingreso, personal.cargo, personal.sueldo, asigdeduc.idconcepto, conceptos.descripcion, asigdeduc.asignacion, asigdeduc.deduccion, asigdeduc.fechapago  FROM asigdeduc, personal, conceptos WHERE asigdeduc.idficha=personal.idficha and asigdeduc.idconcepto=conceptos.idconcepto ORDER BY asigdeduc.idficha, asigdeduc.idconcepto");
            
$cuantomysql_num_rows($consulta);
            
//echo "total Registros"."  ".$cuanto."<br>";
            
while ($row=mysql_fetch_array($consulta)) {
                
$ficha=$row["idficha"]; 
                if (
$pase==1) {
                    
$trabajador=$row["idficha"];
                    
$fechapago=$row["fechapago"];
                    
$pase=2;
                    echo 
'<tr><td align="center">'.$trabajador.'</td>';
                    echo 
'<td>'.$row['apenom'].'</td>';
                    echo 
'<td>'.$row['cargo'].'</td>';
                    echo 
'<td align="center">'.$row['fechaingreso'].'</td>';
                    echo 
'<td>'.$row['sueldo'].'</td></tr>';
                } if (
$trabajador!=$ficha) {
                    
$neto=$asig-$deduc;
                    
$totasig=$totasig+$asig;
                    
$totdeduc=$totdeduc+$deduc;
                    
$totneto=$totneto+$neto;
                    
// muestro los subtotales por trabajador
                    
echo '<tr><td>'." ".'</td>';
                    echo 
'<td>'." ".'</td>';
                    echo 
'<td>'.$asig.'</td>';
                    echo 
'<td>'.$deduc.'</td>';
                    echo 
'<td>'.$neto.'</td></tr>';
                    
$trabajador=$row["idficha"];
                    
$asig=0;
                    
$deduc=0;
                    
$neto=0;
                    echo 
'<tr><td align="center">'.$trabajador.'</td>';
                    echo 
'<td>'.$row['apenom'].'</td>';
                    echo 
'<td align="center">'.$row['cargo'].'</td>';
                    echo 
'<td>'.$row['fechaingreso'].'</td>';
                    echo 
'<td>'.$row['sueldo'].'</td></tr>'."<br>";
                    
//Ahora coloco los conceptos
                    
echo '<tr><td align="center">'.$row["idconcepto"].'</td>';
                    echo 
'<td>'.$row["descripcion"].'</td>';
                    echo 
'<td>'.$row["asignacion"].'</td>';
                    echo 
'<td>'.$row["deduccion"].'</td>';
                    echo 
'<td>'." ".'</td></tr>';
                    
$asig=$asig+$row["asignacion"];
                    
$deduc=$deduc+$row["deduccion"];
    //cierro el if de distinto
                
} else{
                    if (
$trabajador==$ficha) {
                        echo 
'<tr><td align="center">'.$row["idconcepto"].'</td>';
                        echo 
'<td>'.$row["descripcion"].'</td>';
                        echo 
'<td>'.$row["asignacion"].'</td>';
                        echo 
'<td>'.$row["deduccion"].'</td>';
                        echo 
'<td>'." ".'</td></tr>';
                        
$asig=$asig+$row["asignacion"];
                        
$deduc=$deduc+$row["deduccion"];
                        
// $totasig=$totasig+$asig;
                        // $totdeduc=$totdeduc+$deduc;
                        
$totneto=$totneto+$neto;
                    }
                    
//cierro el else
                
}
                
//pregunto si es el ultimo registro
                
if ($cuanto==$registro) {
                    
$neto=$asig-$deduc;
                    
$totasig=$totasig+$asig;
                    
$totdeduc=$totdeduc+$deduc;
                    
$totneto=$totneto+$neto;
                    
// muestro los subtotales por trabajador
                    
echo '<tr><td>'." ".'</td>';
                    echo 
'<td>'." ".'</td>';
                    echo 
'<td>'.$asig.'</td>';
                    echo 
'<td>'.$deduc.'</td>';
                    echo 
'<td>'.$neto.'</td></tr>'."<br>";
                    
//Ahora los totales
                    
echo '<tr><td>'." ".'</td>';
                    echo 
'<td>'." ".'</td>';
                    echo 
'<td>'.$totasig.'</td>';
                    echo 
'<td>'.$totdeduc.'</td>';
                    echo 
'<td>'.$totneto.'</td></tr>'."<br>";
                }
                
//Cierro el while
                
$registro++;
            }
            
?>

        </table>
    </body>
</html>

saludos

Edit Dream*** te lleva a malas prácticas, te genera código basura, no te autocompleta clases, etc, etc, etc, usa un editor mas decente, notepad++, sublime text, geidt, incluso ides como netbeans, eclipse, aptana, a tu gusto para que veas lo que es un editor de verdad y desarrolles como los hombres como le digo a mis compañeros de trabajo XD
« Última Modificación: 29 de octubre de 2013, 10:53:25 pm por Carlos Belisario »

Desconectado egamarra78

  • Novato
  • *
  • Mensajes: 9
  • Puntuación: -1
    • Ver Perfil
Re:error en consulta mysql
« Respuesta #4 : 02 de noviembre de 2013, 07:18:52 pm »
genero la consulta y selecciono el espacio entre el titulo y el comienzo de la tabla y observo esto:

<body>
<h2><div align="center">Relacion Conceptos de Nomina
  <h3>
</h3></div></h2>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><table align="center" border="1">
<tbody><tr>
<th>Ficha</th>
 este es error del cual les hablo. Inserta saltos de linea si colocarlos en el codigo. el error es con IE y mozilla. Por favor si me pueden ayudar... Graciasssss

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:error en consulta mysql
« Respuesta #5 : 02 de noviembre de 2013, 09:25:54 pm »
Ya te lo dije, en esto
Código: [Seleccionar]
echo '<td>'.$neto.'</td></tr>'."<br>";
no el <br> esta demás, no es necesario,, por eso te crea el poco de <br>

Desconectado egamarra78

  • Novato
  • *
  • Mensajes: 9
  • Puntuación: -1
    • Ver Perfil
Re:error en consulta mysql
« Respuesta #6 : 03 de noviembre de 2013, 02:30:07 pm »
Muchas gracias hermano, problema resuelto era ese <br> demas y una etiqueta <div> mal ubicada en el titulo..