Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

Estas en el tema de Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web en el foro de PHP en Foros del Web. Hola Foro, tengo una tabla donde si realizo una búsqueda de la marca 1, sección 1, categoría 1 me dice que tengo 8 registros pero ...
  #1 (permalink)  
Antiguo 01/08/2014, 08:27
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 4 meses
Puntos: 0
Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

Hola Foro,
tengo una tabla donde si realizo una búsqueda de la marca 1, sección 1, categoría 1 me dice que tengo 8 registros pero cuando los muestro en la web solo me muestra 7, la consulta es esta...
Código PHP:
$_pagi_sql "SELECT * FROM articulos WHERE idMrk=".$m." AND idSec=".$s." AND idCat=".$c." ORDER BY codigo ASC ";
$_pagi_result mysql_query($_pagi_sql) or die(mysql_error()." A la consulta: ".$_pagi_sql);
$numrows mysql_num_rows($_pagi_result);
        
while (
$rows mysql_fetch_array($_pagi_result)){
...

No se me ocurre donde puede estar el error, la tabla no tiene primary key pero tiene un índice único en el campo código del producto, pensaba que podía ir por ahí pero he hecho pruebas y no veo cambios.

Alguna idea?
gracias anticipadas
Jormaz
  #2 (permalink)  
Antiguo 01/08/2014, 08:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 6 meses
Puntos: 2658
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

OFF topic en MySQL.

Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/08/2014, 08:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 6 meses
Puntos: 2658
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

La tabla en MySQL no tiene nada que ver.
Si la función mysql_num_rows() te dice que hay ocho registros, eso es lo que MySQL devolvió.
Si no te los muestra, es que algún error cometes al recorrer y mostrar. Es difícil saber qué porque no estás postenado el codigo completo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 01/08/2014, 10:58
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

Hola perdón por el OFFTOPIC y gracias por responder, añado el código que falta...

Código PHP:
<?php
     $_pagi_sql 
"SELECT * FROM articulos WHERE idMrk=".$m." AND idSec=".$s." AND idCat=".$c." ORDER BY codigo ASC ";
     
$_pagi_result mysql_query($_pagi_sql) or die(mysql_error()." En la consulta: ".$_pagi_sql);
     
$numrows mysql_num_rows($_pagi_result);
?>
    <section id="content">
        <header>
                <h1 class="title"><g:plusone></g:plusone> <?=$title;?></h1>
        </header>
            <?php while ($rows mysql_fetch_array($_pagi_result)){ ?>
            <article class="articulo">
                <header>
                    <img src="<?=$domain?>/productos/<?=normaliza(mostrarSec($rows['idSec'],1));?>/<?=normaliza(mostrarMrk($rows['idMrk']));?>/<?=$rows['imagen'];?>.jpg" width="120" class="imaleft" />
                    <h2><a href="/<?=$lang?>/marca/<?=normaliza(mostrarMrk($rows['idMrk']));?>/<?=$rows['codigo'];?>/<?=normaliza($rows[TITULO]);?>"><?php $txt_previo substr($rows[TITULO], 075); $txt substr($txt_previo0strrpos($txt_previo" ")).'...'; echo $txt?></a></h2>
                    </header>        
                    <footer>
                        <?php if($rows['sinprecio'] == 1){?>
                            <a href="<?=$domain?>/<?=$lang?>/<?=$rows['codigo']?>/condiciones-especiales"><img src="<?=$domain?>/img/solicite-<?=$domain_name;?>.jpg" style="border:none"></a>
                        <?php }else{ ?>
                            <p>Precio de Fábrica: <strong><?=$rows['pvpfabrica'];?>€</strong><br/>
                            Ahora por: <strong class="red"><?=$rows['pvpventa'];?>€</strong><br/>
                            Precio con iva: <strong><?=$rows['pvpivainc'];?>€</strong></p>
                            <br class="clear"/> 
                            <a href="<?=$domain?>/<?=$lang?>/presupuesto-online"><?=e("Solicite presupuesto con instalación");?></a>
                        <?php ?>
                    </footer>
                </article><!-- END: article -->    
            <?php ?>
        </section><!-- END: SECTION: content -->
Saludos
  #5 (permalink)  
Antiguo 01/08/2014, 12:25
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años
Puntos: 79
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

Hola jormaz, te puedo decir que haría:

primero imprimo el código:

Código PHP:
Ver original
  1. print $_pagi_sql;

luego lo copio y lo llevo al software con el que conectas a tu base (phpmyadmin por ejemplo) en mi caso es MySQL-Front y lo hago correr, valido que resultado me da y listo, eso es lo que debe ser

si te da otro resultado, debe estar capturando de otro lado el valor

consulta:
Código PHP:
Ver original
  1. <?=$domain?>

no te da error eso???


salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #6 (permalink)  
Antiguo 02/08/2014, 00:51
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

Hola Perr0,
he probado lo que me has dicho. El print me ha devuelto 1 en cada que es lo que tiene que aparecer al inicio.
Código:
SELECT * FROM articulos WHERE idMrk=1 AND idSec=1 AND idCat=1 ORDER BY codigo ASC
Lo he pegado en el phpMyAdmin
Código:
Mostrando registros 0 - 7 ( 8 total, La consulta tardó 0.0124 seg) [codigo: CALDGAMVACOAC2515187 - CALDGAMVACOMX2519826]
...y lo mismo. Luego he probado de ordenarlas al revés por probar algo y no falta el mismo registro ordenando en ASC que en DESC...por lo que descarto que sea algún error por algún carácter en algún campo. He repetido el proceso en otra web que usa una base de datos como esta y lo muestra bien. También he activado los errores y no se ve nada...

Sobre el tema de usar las abreviaturas, hasta lo que yo se de PHP, nunca me han dado un problema y hace tiempoque las uso.

Saludos!
  #7 (permalink)  
Antiguo 02/08/2014, 06:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 6 meses
Puntos: 2658
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

Postea el resultado que obtienes, y pues tramos como se supone que seria el que debes obtener.
Asumo que lo que ves en phpMyadmin es diferente de lo que generas luego en el script, ¿no?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 04/08/2014, 21:01
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 19 años
Puntos: 79
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

lo mas práctico que te puedo indicar es que en una página en blanco conectes con MySQL y coloques el código slq escrito, sin usar sesiones, hay veces por ejemplo en que una variable $query o $sql viene arrastrada de mas atrás, pero recuerda en una pagina aparte.

Lo único que te puedo asegurar es que el error siempre está entre el teclado y la silla (la mayoría de las veces), a menos que cambien la versión para corregir un error que descubriste =)

suerte y nos cuentas
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #9 (permalink)  
Antiguo 05/08/2014, 12:45
 
Fecha de Ingreso: enero-2007
Mensajes: 19
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Mostrando registros 0 - 7 ( 8 total)..pero solo muestra 7 en la web

Hola de nuevo, pues si perr0 tenias razón, el error esta entre la silla y el teclado.

Primero pediros perdón otra vez porque además os lo he ocultado ;(
...deje de poner un par de líneas de código porque creí que no tenían nada que ver con el error y eran el error!

Al hacer lo que me pedías de crear una página en blanco con la conexión y poco código más, me di cuenta en seguida que esa línea no hacía nada allí (se había quedado en una actualización de unos meses atrás)

Código PHP:
<?php 
     $_pagi_sql 
"SELECT * FROM articulos WHERE idMrk=".$m." AND idSec=".$s." AND idCat=".$c." ORDER BY codigo ASC "
     
$_pagi_result mysql_query($_pagi_sql) or die(mysql_error()." En la consulta: ".$_pagi_sql); 
     
$numrows mysql_num_rows($_pagi_result);
     
$row mysql_fetch_array($_pagi_result);
     
$title mostrarMrk($m)." &raquo; ".mostrarSec($s,1)." &raquo; ".mostrarCat($c,1).""
?> 
    <section id="content"> 
        <header> 
                <h1 class="title"><g:plusone></g:plusone> <?=$title;?></h1> 
        </header> 
            <?php while ($rows mysql_fetch_array($_pagi_result)){ ?> 
            <article class="articulo"> 
                <header> 
                    <img src="<?=$domain?>/productos/<?=normaliza(mostrarSec($rows['idSec'],1));?>/<?=normaliza(mostrarMrk($rows['idMrk']));?>/<?=$rows['imagen'];?>.jpg" width="120" class="imaleft" /> 
                    <h2><a href="/<?=$lang?>/marca/<?=normaliza(mostrarMrk($rows['idMrk']));?>/<?=$rows['codigo'];?>/<?=normaliza($rows[TITULO]);?>"><?php $txt_previo substr($rows[TITULO], 075); $txt substr($txt_previo0strrpos($txt_previo" ")).'...'; echo $txt?></a></h2> 
                    </header>         
                    <footer> 
                        <?php if($rows['sinprecio'] == 1){?> 
                            <a href="<?=$domain?>/<?=$lang?>/<?=$rows['codigo']?>/condiciones-especiales"><img src="<?=$domain?>/img/solicite-<?=$domain_name;?>.jpg" style="border:none"></a> 
                        <?php }else{ ?> 
                            <p>Precio de Fábrica: <strong><?=$rows['pvpfabrica'];?>€</strong><br/> 
                            Ahora por: <strong class="red"><?=$rows['pvpventa'];?>€</strong><br/> 
                            Precio con iva: <strong><?=$rows['pvpivainc'];?>€</strong></p> 
                            <br class="clear"/>  
                            <a href="<?=$domain?>/<?=$lang?>/presupuesto-online"><?=e("Solicite presupuesto con instalación");?></a> 
                        <?php ?> 
                    </footer> 
                </article><!-- END: article -->     
            <?php ?> 
        </section><!-- END: SECTION: content -->
La línea en cuestión es la que esta encima del título de la página (que ahora si he puesto) ...que seguro ya os habréis dado cuenta lláma a la función mysql_fetch_array, función a la que se vuelve a llamar en while y eso hace que el puntero en la consulta del while se mueva un sitio hacia adelante y muestre un resultado menos por lo que veo.

Había pasado por encima 50 veces...en fin gracias a los dos por contestar y aportarme una forma diferente de ver el problema.

Saludos
Carlos

Etiquetas: mysql, mysql+consulta, registros
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 04:08.