Foros del Web » Programando para Internet » PHP »

Sobre el paginador de jpinedo y mostrar datos con enlace

Estas en el tema de Sobre el paginador de jpinedo y mostrar datos con enlace en el foro de PHP en Foros del Web. Aqui estoy otra vez con mis dudas, y es que los novatos es lo que tenemos, muchas dudas. He intentado incluir el paginador de jpinedo ...
  #1 (permalink)  
Antiguo 29/10/2005, 11:10
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
Sobre el paginador de jpinedo y mostrar datos con enlace

Aqui estoy otra vez con mis dudas, y es que los novatos es lo que tenemos, muchas dudas.

He intentado incluir el paginador de jpinedo en mi php pero me da el siguiente error:

Error en la consulta de conteo de registros: Resource id #5. Mysql dijo: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1

Siguiendo el consejo de pinedo, traslado el error al foro para que me enseñeis el camino.

Mi código php (antes del paginador) es el siguiente:
Código PHP:
<?php
   
include("conexion.php"); 
   
$link=Conectarse(); 
   
$result=mysql_query("SELECT *  FROM `$basedatos` WHERE `Team` LIKE '%$franquicia%' AND `Position` LIKE '%$posicion%' AND `Name` LIKE '%$search%' AND `Experiencia` LIKE '%$exper%' ORDER BY `$ordenar` $criterio",$link);
if (
$mostrar=="TOT"){ 
?>
<center>
  <font face="Slicker, Verdana, Arial" size="2">Resultados de la búsqueda</font> 
</center><br>   
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1 align=center>
  <TR bgcolor="#000000"> 
    <TD><font face="Slicker, Verdana, Arial" size="2">Jugador</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Equipo</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Posición</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Partidos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Minutos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">FG-FGA</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">3P-3PA</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">FT-FTA</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Puntos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Rebotes</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Asistencias</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Robos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Tapones</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Pérdidas</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Faltas</font></TD>
  </TR>
  <?php
  
} else {
  
?>
  <center><font size="2"><font face="Slicker, Verdana, Arial">Resultados de la búsqueda</font></font></center><br>   
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1 align=center>
  <TR bgcolor="#000000"> 
    <TD><font face="Slicker, Verdana, Arial" size="2">Jugador</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Equipo</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Posición</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Partidos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Min/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">%FG</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">%3P</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">%FT</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Pts/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Reb/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Asis/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Rob/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Tap/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Pérd/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Falt/pp</font></TD>
  </TR>
  <?
  
}
  
?>       
<?php
$lista_colores
=array('#3F3F3F','#6F6F6F');
$num_colores=2
$indice=0
   while(
$row mysql_fetch_array($result)) { 
   
$color=$lista_colores[$indice $num_colores]; 
  
$indice++; 
    if (
$mostrar == "TOT"){ 
      
printf("<tr bgcolor=\"$color\" style=\"font-size:10px\"><td>%s</td><td>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td></tr>"$row["Name"],$row["Team"],$row["Position"],$row["Games"],$row["Minutes"],$row["FG"].'-'.$row["FGA"],$row["3P"].'-'.$row["3PA"],$row["FT"].'-'.$row["FTA"],$row["Points"],$row["Rebounds"],$row["Assist"],$row["Steals"],$row["Blocks"],$row["Turnovers"],$row["Fouls"]); 
   } else {
      
printf("<tr bgcolor=\"$color\" style=\"font-size:10px\"><td>%s</td><td>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td></tr>"$row["Name"],$row["Team"],$row["Position"],$row["Games"],$row["Min_PP"],$row["FG%"].'%',$row["3P%"].'%',$row["FT%"].'%',$row["Points_PP"],$row["Reb_PP"],$row["Ass_PP"],$row["St_PP"],$row["Bl_PP"],$row["To_PP"],$row["Fouls_PP"]);
   }
   }
   
   
mysql_free_result($result); 
   
mysql_close($link); 
?>
Lo que yo hago es sustituir la variable $result por la que hay que poner en el paginador ($_pagi_sql) todas las veces que aparece en mi script.

E incluyo las otras lineas que pone como obligatorias, es decir:

Código PHP:
$_pagi_cuantos 10;

include(
"paginator.inc.php");

while(
$row mysql_fetch_array($_pagi_result)){
    echo 
$row['nombre']."<br />";
}

echo
"<p>".$_pagi_navegacion."</p>"
¿Qué es lo que hago mal?

--------------------------------

Mi segunda duda, es como hacer para que el valor de la variable Name me aparezca en cada caso enlazado a una página que debería tener el siguiente nombre: /players/player[campo ID de base de datos].htm

Es que no se si el enlace lo tengo que incluir donde tengo las etiquetas de tabla, o donde tengo definidos los valores a mostrar.
  #2 (permalink)  
Antiguo 29/10/2005, 11:52
Avatar de tyo100  
Fecha de Ingreso: febrero-2005
Ubicación: Monterrey, NL
Mensajes: 475
Antigüedad: 19 años, 2 meses
Puntos: 1
ORDER BY `$ordenar` $criterio" creo que aqui esta mal es ORDER BY campo_por_el_que_se_ordena
__________________
Desde la tierra de los nopales, las tortillas de maiz, y en cuya ciudad se encuenta el cerro de la silla.
NalgAss Web
SpiderMex - La Historia del Hombre Araña en MEXICO
  #3 (permalink)  
Antiguo 29/10/2005, 12:06
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
No eso no es.

El script me funciona bien, el problema lo tengo cuando le quiero incorporar el paginador.

$ordenar es el campo y $criterio es ASC o DESC
  #4 (permalink)  
Antiguo 29/10/2005, 16:12
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
En lo referente al enlace, yo pongo esto:

Código PHP:
if ($mostrar == "TOT"){ 
      
printf("<tr bgcolor=\"$color\" style=\"font-size:10px\"><td>%s</td><td>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td></tr>",<a href="/players/player".$row["ID"]".htm" target="_blank">$row["Name"]</a>,$row["Team"],$row["Position"],$row["Games"],$row["Minutes"],$row["FG"].'-'.$row["FGA"],$row["3P"].'-'.$row["3PA"],$row["FT"].'-'.$row["FTA"],$row["Points"],$row["Rebounds"],$row["Assist"],$row["Steals"],$row["Blocks"],$row["Turnovers"],$row["Fouls"]); 
pero no me funciona, me da este error Parse error: parse error, unexpected '<' de lo que deduzco que el href lo debo estar ponieno mal.
  #5 (permalink)  
Antiguo 29/10/2005, 16:18
Avatar de Vaalegk  
Fecha de Ingreso: abril-2005
Mensajes: 154
Antigüedad: 19 años
Puntos: 2
el <a href ..... va entre comillas
Código PHP:
'<a href="players/player"'.$row["ID"].'.htm" target="_blank">'.$row["Name"].'</a>' 
  #6 (permalink)  
Antiguo 29/10/2005, 16:38
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
Así si que me genera el enlace, pero no me genera bien la URL que yo quiero.

Me queda solo con ..../players/player

Cuando yo quiero algo asi:

.../players/playerxxx.htm

donde xxx es un número que está en el campo ID de la base de datos.
  #7 (permalink)  
Antiguo 29/10/2005, 16:48
Avatar de Vaalegk  
Fecha de Ingreso: abril-2005
Mensajes: 154
Antigüedad: 19 años
Puntos: 2
ups, mi culpa se me fue una doble comilla de mas es asi
Código PHP:
'<a href="players/player'.$row["ID"].'.htm" target="_blank">'.$row["Name"].'</a>' 
  #8 (permalink)  
Antiguo 30/10/2005, 02:11
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
Me sigue sin ir.

Ahora me forma el enlace .../players/player.htm , pero me omite el xxx del ID.
  #9 (permalink)  
Antiguo 30/10/2005, 02:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
No dije nada. Funciona perfectamente, es que lo probé con una base de datos que no tenía ese campo, pero con la buena va perfectamente.

Sobre lo del paginador, ¿alguna idea?
  #10 (permalink)  
Antiguo 30/10/2005, 02:55
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
¿No estarás haciendo esto?
Código PHP:
 $_pagi_sql mysql_query("SELECT *  FROM `$basedatos` WHERE `Team` LIKE '%$franquicia%' AND `Position` LIKE '%$posicion%' AND `Name` LIKE '%$search%' AND `Experiencia` LIKE '%$exper%' ORDER BY `$ordenar` $criterio",$link); 
Recuerda que $_pagi_sql debe ser simplemente una cadena y que Paginator ejecuta la consulta atomáticamente. Por eso ya no debes utilizar mysql_query().

Tu código debería funcionar así.
Código PHP:
$_pagi_sql "SELECT *  FROM `$basedatos` WHERE `Team` LIKE '%$franquicia%' AND `Position` LIKE '%$posicion%' AND `Name` LIKE '%$search%' AND `Experiencia` LIKE '%$exper%' ORDER BY `$ordenar` $criterio";
$_pagi_cuantos 10;
// Recuerda propagar las variables que necesitas en la consulta:
$_pagi_propagar = array('ordenar''criterio''exper''posicion''search''franquicia');// y todas las que sean necesarias.

include("paginator.inc.php");
//... 
Luego, en el momento de mostrar los registros
Código PHP:
$lista_colores=array('#3F3F3F','#6F6F6F');
$num_colores=2;
$indice=0;
   while(
$row mysql_fetch_array($_pagi_result)) {
   
$color=$lista_colores[$indice $num_colores];
  
$indice++; 
etc, etc, etc...

Saludos
  #11 (permalink)  
Antiguo 30/10/2005, 02:58
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
Pues si. Eso es lo que hacía. Sustituir "a pelo" la variable.

Ahora me tengo que ir, cuando vuelva lo probaré y te diré algo (que seguramente será algo bueno, )
  #12 (permalink)  
Antiguo 30/10/2005, 12:57
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
Jorge, tal y como me lo has dicho me sale el paginador ,pero solo me funciona en la 1ª página. Cuando le doy al 2 me sale el siguiente error:

Error en la consulta de conteo de registros: SELECT COUNT(*) FROM `` WHERE `Team` LIKE '%' AND `Position` LIKE '%%' AND `Name` LIKE '%%' AND `Experiencia` LIKE '%%' ORDER BY `Name` ASC. Mysql dijo: Incorrect table name ''

El código php tal y como lo tengo ahora es:

Código PHP:
<?php
   
include("conexion.php"); 
   
$link=Conectarse(); 
   
$_pagi_sql "SELECT *  FROM `$basedatos` WHERE `Team` LIKE '$franquicia%' AND `Position` LIKE '%$posicion%' AND `Name` LIKE '%$search%' AND `Experiencia` LIKE '%$exper%' ORDER BY `$ordenar` $criterio";
$_pagi_cuantos 50;
$_pagi_propagar = array('ordenar''criterio''exper''posicion''search''franquicia''mostrar');// y todas las que sean necesarias.
include("paginator.inc.php");
if (
$mostrar=="TOT"){ 
?>
<center>
  <font face="Slicker, Verdana, Arial" size="2">Resultados de la búsqueda</font> 
</center><br>   
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1 align=center>
  <TR bgcolor="#000000"> 
    <TD><font face="Slicker, Verdana, Arial" size="2">Jugador</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Equipo</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Posición</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Partidos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Minutos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">FG-FGA</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">3P-3PA</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">FT-FTA</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Puntos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Rebotes</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Asistencias</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Robos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Tapones</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Pérdidas</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Faltas</font></TD>
  </TR>
  <?php
  
} else {
  
?>
  <center><font size="2"><font face="Slicker, Verdana, Arial">Resultados de la búsqueda</font></font></center><br>   
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1 align=center>
  <TR bgcolor="#000000"> 
    <TD><font face="Slicker, Verdana, Arial" size="2">Jugador</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Equipo</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Posición</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Partidos</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Min/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">%FG</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">%3P</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">%FT</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Pts/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Reb/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Asis/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Rob/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Tap/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Pérd/pp</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Falt/pp</font></TD>
  </TR>
  <?
  
}
  
?>       
<?php
$lista_colores
=array('#3F3F3F','#6F6F6F');
$num_colores=2
$indice=0
   while(
$row mysql_fetch_array($_pagi_result)) { 
   
$color=$lista_colores[$indice $num_colores]; 
  
$indice++; 
    if (
$mostrar == "TOT"){ 
      
printf("<tr bgcolor=\"$color\" style=\"font-size:10px\"><td>%s</td><td>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td></tr>",'<a href="players/player'.$row["ID"].'.htm" target="_blank">'.$row["Name"].'</a>',$row["Team"],$row["Position"],$row["Games"],$row["Minutes"],$row["FG"].'-'.$row["FGA"],$row["3P"].'-'.$row["3PA"],$row["FT"].'-'.$row["FTA"],$row["Points"],$row["Rebounds"],$row["Assist"],$row["Steals"],$row["Blocks"],$row["Turnovers"],$row["Fouls"]); 
   } else {
      
printf("<tr bgcolor=\"$color\" style=\"font-size:10px\"><td>%s</td><td>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td><td align=right>%s</td></tr>",'<a href="players/player'.$row["ID"].'.htm" target="_blank">'.$row["Name"].'</a>',$row["Team"],$row["Position"],$row["Games"],$row["Min_PP"],$row["FG%"].'%',$row["3P%"].'%',$row["FT%"].'%',$row["Points_PP"],$row["Reb_PP"],$row["Ass_PP"],$row["St_PP"],$row["Bl_PP"],$row["To_PP"],$row["Fouls_PP"]);
   }
   }
   
   
mysql_free_result($_pagi_result); 
   
mysql_close($link); 
?>
</table>
<?
echo"<p>".$_pagi_navegacion."</p>";
?>
  #13 (permalink)  
Antiguo 30/10/2005, 16:21
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
A ver... te explico...

Para generar la primera página, tienes una serie de variables que intervienen en tu consulta como $basedatos, $franquicia, $posicion, etc. ¿De donde provienen estas variables? ¿De un formulario?

Además tienes otra variable como $mostrar que, al parecer también es importante para generar la página de resultados.

Pues todas esas variables deben ser propagadas a las siguientes páginas. Para eso existe el array $_pagi_propagar.

En teoría, con el register globals en ON (como se presume que tienes el php.ini), bastará con que pongas los nombres de todas las variables en el array $_pagi_propagar.
Código PHP:
$_pagi_propagar = array('basedatos''ordenar''criterio''exper''posicion''search''franquicia''mostrar'); 
Supongo que con eso bastará.

Saludos
  #14 (permalink)  
Antiguo 30/10/2005, 17:11
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 18 años, 5 meses
Puntos: 0
Vaya, que torpe que soy. Me deje la variable "basedatos" y por eso salía el error.

Ya me va bien.

Muchas gracias.
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 16:59.