Foros del Web » Programando para Internet » PHP »

¿Como hacer esto?

Estas en el tema de ¿Como hacer esto? en el foro de PHP en Foros del Web. Tengo esta consulta creada en la web: http://lbps.byethost9.com/buscar.htm que se encarga de buscar en una base de datos que tengo y mostrar los resultados tal ...
  #1 (permalink)  
Antiguo 25/04/2006, 06:56
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
¿Como hacer esto?

Tengo esta consulta creada en la web: http://lbps.byethost9.com/buscar.htm que se encarga de buscar en una base de datos que tengo y mostrar los resultados tal y como aparecen.

Ahora los que quiero es que me aparezca otra columna en la que me muestre para cada registro un enlace a otra consulta de otra base de datos en la que me muestre todos los registros que sean iguales al campo clave del registro seleccionado. (Si en la opción de "Mostrar" seleccionais atributos, vereis la última columna con el valor del campo "ID" de cada registro)

Sé como hacer la nueva consulta sql a la base de datos, pero no sé como tengo que incluir el enlace para que al pulsar sobre el mismo (ahora todos se redirigen a gameslogs.php), conserve el valor del campo ID para realizar la búsqueda en la otra base de datos y mostrar los datos que me interesan.
  #2 (permalink)  
Antiguo 25/04/2006, 09:56
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 11 años, 7 meses
Puntos: 2
Podrias pasar el valor del campo ID por GET. Al enlace que tenes en cada uno de los IDs (gameslogs.php) tendrias que agregarle un parametro que indique cual es el ID seleccinado. Por ejemplo, en enlace para un ID de 1, seria gameslogs.php?id=1. Esto tendrias que hacerlos más o menos asi (suponiendo que usas mysql):

Código PHP:
<?
//conectas con la base, realizas la consulta y mostras los resultados
while ($fila mysql_fetch_array($resultado)) {
$id $fila['id'];
.... 
echo 
"<td><a href=\"gameslog.php?id=$id\">$id</a></td>";
...
}
...
?>
Y en gameslog.php:

Código PHP:
<?
$id 
$_GET['id'];
$consulta "SELECT .... WHERE id = $id";
.....
?>
Saludos.
  #3 (permalink)  
Antiguo 26/04/2006, 04:13
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Entiendo lo que me dices, pero como soy un poco novato en esto del php, no veo muy bien donde ponerlo en mi código para que funcione.

Aqui te pongo lo que tengo, y tú me dirás.

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('basedatos''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
  
} elseif ($mostrar=="PRO") {
  
?>
  <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>
  <?
  
} 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">Inside</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Outside</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Handling</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Defense</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Rebounding</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Game Logs</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"]); 
   } elseif (
$mostrar == "PRO") {
      
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"]);
   } else {
   
printf("<tr bgcolor=\"$color\" style=\"font-size:10px\"><td>%s</td><td>%s</td><td align=right>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%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["Inside"],$row["Outside"],$row["Handling"],$row["Defense"],$row["Rebounding"],'<a href=\"gamelogs.php?ID=$ID\" target="_blank">'.$row["ID"].'</a>');
   }
   }
   
   
mysql_free_result($_pagi_result); 
   
mysql_close($link); 
?>
</table><center>
<?
echo"<p>".$_pagi_navegacion."</p>";
?>
Te pongo todo el código, en donde iría es en la línea del último printf, al final (aunque luego lo incluiría en los otros, si funcionara) y lo he escrito como tú me lo has puesto.

El while, el $id, etc... no sé muy bien donde meterlo.
  #4 (permalink)  
Antiguo 26/04/2006, 05:24
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 11 años, 7 meses
Puntos: 2
Bueno, la última parte del printf que mencionas podrías ponerla asi:

Código PHP:
<?
printf
(........... '<a href="gamelogs.php?ID='.$row['ID'].'" target="_blank">'.$row["ID"].'</a>');
?>
Cuando pulses sobre el link, se va a enviar el id por GET como parámetro.
Luego en gamelogs.php lo recuperas como te indique antes y con el realizas la consulta necesaria.
Saludos.
  #5 (permalink)  
Antiguo 26/04/2006, 05:56
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Por tu respuesta interpreto que el while no haría falta.

Y gracias por tu pronta respuesta, cuando lo pruebe ya te diré algo.
  #6 (permalink)  
Antiguo 27/04/2006, 04:10
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Algo debo tener mal ya que la página gamelogs06 no me recupera nada. Me crea la página http://xxxxxxxxxxxxx/gamelogs.php?ID=*** pero en blanco.

Aquí te pongo el php de esta página para ver que hago mal:

Código PHP:
<?php
   
include("conexion.php"); 
   
$link=Conectarse(); 
   
$id $_GET['ID'];
   
$_pagi_sql "SELECT *  FROM gamelogs06 WHERE ID=$id ORDER BY Seasonday";
$_pagi_cuantos 50;
$_pagi_propagar = array('id');// y todas las que sean necesarias.
include("paginator.inc.php");
?>
<br>   
<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=1 align=center>
  <TR bgcolor="#000000"> 
    <TD><font face="Slicker, Verdana, Arial" size="2">Día</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Equipo</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Oponente</font></TD>
    <TD><font face="Slicker, Verdana, Arial" size="2">Titular</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
$lista_colores
=array('#3F3F3F','#6F6F6F');
$num_colores=2
$indice=0;
   while(
$row mysql_fetch_array($_pagi_result)) { 
   
$color=$lista_colores[$indice $num_colores]; 
  
$indice++; 
    
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["Seasonday"],$row["Team"],$row["Opponent"],$row["Starter"],$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"]);
    
   }
   
   
mysql_free_result($_pagi_result); 
   
mysql_close($link); 
?>
</table><center>
<?
echo"<p>".$_pagi_navegacion."</p>";
?>
  #7 (permalink)  
Antiguo 28/04/2006, 09:37
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 11 años, 7 meses
Puntos: 2
No se si fue un error al copiar el script, pero en tu script no veo que realices la consulta. No hay un msyql_query($_pagi_sql).
Saludos.
  #8 (permalink)  
Antiguo 28/04/2006, 09:54
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
El query está dentro del paginator.inc.php
  #9 (permalink)  
Antiguo 28/04/2006, 10:05
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 11 años, 7 meses
Puntos: 2
¿Te da algún mensaje de error? ¿usaste algo como mysql_query($consulta) or die (mysql_error()) para que te muestre el error (si es que hay)? También podria ser que la consulta no devuelve ningún resultado, por lo que habría error ni tampoco se mostrariar los datos.
P.D.:Es un poco rara la organizacion de tu script. Creo que deberias organizarlo un poco mejor. Por ejemplo, el archivo que incluis debaria definir una función que realize la consulta y luego llamara a esta función (al igual que la funcion conectarse), para que el código sea más claro y reusable.
Saludos.
  #10 (permalink)  
Antiguo 29/04/2006, 07:47
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Salía un error de conteo de registros, pero ya lo he solucionado. Había puesto la variable player como "player" en lugar de "$player".

Ahora lo que pasa es que me saca la página con la tabla pero no saca datos, y los datos en la base están, o sea que o falla la consulta o no me captura bien el valor de la variable ID.
  #11 (permalink)  
Antiguo 02/05/2006, 06:47
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Vuelvo a tener el error en el conteo de registros.

Me sale lo siguiente:

Error en la consulta de conteo de registros: SELECT COUNT(*) FROM 'gamelogs06' WHERE 'ID' LIKE 582 ORDER BY 'Seasonday'. 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 ''gamelogs06' WHERE 'ID' LIKE 582 ORDER BY 'Seasonday'' at line 1

Ese 582 es el ID que capturo con get, o sea que funciona bien.

La consulta que tengo es la siguiente:

Código PHP:
<?php
   
include("conexion.php");
   
$link=Conectarse();  
   
$player $_GET['ID'];
   
$_pagi_sql "SELECT *  FROM 'gamelogs06' WHERE 'ID' LIKE $player ORDER BY 'Seasonday'";
$_pagi_cuantos 50;
$_pagi_propagar = array('player''Seasonday');// y todas las que sean necesarias.
include("paginator.inc.php");
?>
El query está en el paginator.inc.php

¿Alguna idea?
  #12 (permalink)  
Antiguo 02/05/2006, 07:06
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 11 años, 7 meses
Puntos: 2
Es un error de sintaxis en tu consulta. El nombre de la tabla no tiene que ir entre comillas, y el nombre del campo tampoco. Además, en este caso, creo que podrias utilizar el = para comparar el ID, en lugar de LIKE. Proba poniendo la consulta asi:

Código PHP:
<?php 
   
include("conexion.php"); 
   
$link=Conectarse();   
   
$player $_GET['ID']; 
   
$_pagi_sql "SELECT *  FROM gamelogs06 WHERE ID = $player ORDER BY Seasonday"
$_pagi_cuantos 50
$_pagi_propagar = array('player''Seasonday');// y todas las que sean necesarias. 
include("paginator.inc.php"); 
?>
Saludos.
  #13 (permalink)  
Antiguo 02/05/2006, 07:17
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 1 mes
Puntos: 0
Era eso. Muchas gracias.

En principio probé con el =, pero como no me salía opté por el LIKE y ya descarté lo otro.

Lo mismo me pasó con las comillas. Como en la otra consulta que tengo creada, están las comillas, aquí las dejé. Probé al principio sin ellas, pero al estar mal algunas cosas, al final las dejé.

Pues lo dicho, 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 02:25.