Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/12/2007, 04:05
retrievr2005
 
Fecha de Ingreso: diciembre-2007
Mensajes: 13
Antigüedad: 16 años, 4 meses
Puntos: 0
Duda con respecto a la realización de un query!!

Muy buenas tardes a todos, me dirijo nuevamente a través de este foro para plantear una duda que tengo, más bien un enredo, sobre un query hacia mi base de datos.

En la actualidad, me encuentro realizando un script para una página de béisbol, y tengo una pequeña duda, voy a explicar en primer lugar, la estructura de la tabla.

Tengo dos tablas una llamada "calendario" y otra denominada "lanzadores", en la primera de ella tengo las siguientes columnas:

Tabla Calendario:
Cita:
Fecha del juego (date)
Equipo Home Club (homeclub)
Carreras anotadas por el equipo Home Club (carrerashc)
Equipo visitante (visitante)
Carreras anotadas por el conjunto visitante (carrerasv)
Nombre del lanzador abridor por el equipo Home club (phomeclub)
Nombre del lanzador abridor por el equipo visitante (pvisitante)
Nombre del lanzador ganador (pganador)
Nombre del lanzador perdedor (pperdedor)
Nombre del lanzador que se adjudica el juego salvado (psalvado)
Estadio donde se llevará a cabo el juego (estadio)
Hora del partido (hora)
Medio de comunicación que esta a cargo de la transmisión (transmision)

Entre paréntesis les coloqué el nombre que lleva el campo dentro de la tabla
A su vez, tengo otra tabla donde tengo almacenado todos los nombres de los lanzadores de la liga, con la respectiva información de victorias, derrotas y salvados que posee cada uno. A continuación su estructura

Tabla Lanzadores:

Cita:
Nombre del lanzador (lanzador)
Cantidad de victorias (victorias)
Cantidad de derrotas (derrotas)
Cantidad de salvados (salvados)

Entre paréntesis les coloqué el nombre que lleva el campo dentro de la tabla
La cuestión es, que deseo colocar en mi página web, una tabla que se llame RESULTADOS DEL DÍA, donde me coloque la información del score de cada juego que se llevó a cabo en el día, y abajo del resultado me coloque quien fue el lanzador ganador del encuentro, el lanzador perdedor y finalmente el lanzador salvador (en caso de haberlo).

Eso ya lo hice, y todo funciona a la perfección, solo con un detalle, que no selecciona de manera correcta la cantidad de victorias del lanzador correspondiente, y he allí mi duda. A continuación, les coloco el query que realizo a la base de datos, para que ella seleccione los resultados y los lanzadores en cuestión:

index.php

Cita:
<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","user","clave") ))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("baseball",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
?>
</table>
<?php
include("conex.phtml");
$link=Conectarse();
$result=mysql_query("SELECT * FROM calendario,lanzadores WHERE 1 AND `date` LIKE DATE_SUB(CURDATE(),INTERVAL 1 DAY) AND `lanzador`=`pganador`");
?>
<table border="3" cellpadding="3" cellspacing="3" width="100%" id="AutoNumber4" height="32" style="font-family: Verdana; border-collapse:collapse" class="ms-list1-0001-main" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#000000">
<!-- fpstyle: 24,000010000 -->
<?php

while($row = mysql_fetch_array($result)) {
printf(" <tr><td><center>%s: %s<br><br>VS<br><br><center>%s: %s</td></tr><tr><td><center>PG: %s (%s-%s)<br><br><center>PP: %s (%s-%s)<br><br><center>PS: %s (%s)</td></tr>
", $row["visitante"],$row["carrerasv"],$row["homeclub"],$row["carrerashc"],$row["pganador"],$row["victorias"],$row["derrotas"],$row["pperdedor"],$row["victorias"],$row["derrotas"],$row["psalvado"],$row["salvados"]);
} mysql_free_result($result);
mysql_close($link);
?>
Cómo pueden observar, ella toma de la base de datos el resultado del encuentro sin problema, también selecciona de manera correcta los lanzadores que quedaron ganadores, perdedores y salvadores, el único problema existente, es que coloca a todos los lanzadores la misma cantidad de victorias, derrotas y salvados, y he allí mi duda. Es un poco complejo, por lo que les voy a colocar mi página web para que observen el problema: http://beisbol.radiotricolor.org, para que observen la tabla resultados que está debajo de la parte de noticias, e intenten ayudarme para ver cual es el problema.

Sé que el query tiene un pequeño error, pero no sé solucionarlo, porque como pueden darse cuenta, coloqué lo siguiente:

Cita:
SELECT * FROM calendario,lanzadores WHERE 1 AND `date` LIKE DATE_SUB(CURDATE(),INTERVAL 1 DAY) AND `lanzador`=`pganador`
Es por ello que toma las victorias, derrotas y salvados de los lanzadores del equipo home club, yo he intentado hacer lo siguiente:

Cita:
SELECT * FROM calendario,lanzadores WHERE 1 AND `date` LIKE DATE_SUB(CURDATE(),INTERVAL 1 DAY) AND `lanzador`=`pganador` OR `lanzador`=`pperdedor` OR `lanzador`=`psalvado`
Porque creí que de esta manera tomaría en cuenta de la tabla Lanzadores, las victorias, derrotas y salvados de cada lanzador que esté implicado en las decisiones de cada juego, pero no es así, ni lo hace, y además de no hacerlo, imprime en la tabla de la página principal, cada juego 3 veces.

Sé que el asunto es medio enredado, yo mismo estoy un poco enrrollado en el asunto, pero espero que puedan ayudarme.

Muchas Gracias de antemano
retriever2005

Última edición por retrievr2005; 21/12/2007 a las 06:56