Foros del Web » Programando para Internet » PHP »

Tabla + Consulta Mysql

Estas en el tema de Tabla + Consulta Mysql en el foro de PHP en Foros del Web. Hola de nuevo a [email protected]! Primero agradecer como siempre a la gente que me ha respondido a mis dudas ya que gracias a ellos he ...
  #1 (permalink)  
Antiguo 22/08/2011, 08:52
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Tabla + Consulta Mysql

Hola de nuevo a [email protected]!
Primero agradecer como siempre a la gente que me ha respondido a mis dudas ya que gracias a ellos he podido entregar sin problemas una parte de mi proyecto.

Me faltan algunas cosas por completar y realizar pero espero que con vuestra ayuda pueda seguir.
Ahora mismo me encuentro con un problema que no creo que tenga mucha dificultad pero me estoy volviendo loco, vereís:

Tengo una tabla en mi bd donde almaceno los resultados de los equipos:

Jornada - Equipo 1 - Res1 - Equipo 2 - Res2

Una parte del pryecto consiste en realizar un pagina donde me muestre todos los resultados pero de una manera diferente al tipico listado, supongo que muchos lo habreís visto pero es una tabla general donde en la parte derecha aparecen todos los equipos y en la parte superior tambien, luego en cada uno de ellos su resultado.
Para que me entendaís mejor os intento dibujar mas o menos como deberia quedar :

Equipo 1 Equipo 2 Equipo 3 Equipo 4
Equipo 1 - 1-0 3-1 0-2
Equipo 2 1-0 - 3-1 0-2
Equipo 3 1-0 1-0 - 0-2
Equipo 4 1-0 3-1 0-2 -

Para listar los equipos de la derecha no creo que tenga problemas pero para mostrar los superiores si al igual que sus resultados.

Como debería hacer la consulta y la tabla para que se presenten de esta manera?

Un Saludo y gracias por adelantado
  #2 (permalink)  
Antiguo 22/08/2011, 09:13
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Para ser más concreto necesito esto :

http://qbitacora.files.wordpress.com...resultados.png

Gracias
  #3 (permalink)  
Antiguo 22/08/2011, 10:12
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Buenas, si quieres hacerlo por orden alfabético, no tienes más que poner dos campos en el ORDER BY. Algo así:
Código MySQL:
Ver original
  1. SELECT * FROM Tabla ORDER BY Equipo1, Equipo2

Esto te sacará la lista de resultados ordenando en primera instancia por el Equipo1 y, para cada uno, del Equipo2. Por ejemplo, si tienes Athletic, Madrid y Barça, te sacará:
Athletic-Barça
Athletic-Madrid
Barça-Athletic
Barça-Madrid
Madrid-Athletic
Madrid-Barça

Luego, lo único que tienes que tener en cuenta es que la diagonal de la tabla no tiene resultados. Es decir, que no hay registro para los cruces Athletic-Athletic, Barça-Barça y Madrid-Madrid. Lo demás es bien sencillo.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #4 (permalink)  
Antiguo 22/08/2011, 10:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Muchas gracias por el interes. La verdad que no he entendido mucho la idea, ya que lo que necesito es primero los equipos en el lado izquierdo y luego los equipos en la parte superior luego supongo que sera igualar o algo por el estilo.

Me estoy volviendo loco para entender la teoria y luego implemetarlo.

De momento tengo este codigo pero no se si está bien o si podría hacerlo de otra manera.

<?php

$resultado=mysql_query("SELECT nombreE FROM clasificacion WHERE categoria = 'Segona B Grup III' ORDER BY nombreE ASC",$link);
$resultado2=mysql_query("SELECT nombreE FROM clasificacion WHERE categoria = 'Segona B Grup III' ORDER BY nombreE ASC",$link);



echo "<table border='1' id='datos' align='center' width='865px' style='background-color:#f0f0f0;font-family:Arial; color:#5A6E11;border:1px solid #f0f0f0;'>
<tr>
<td class='clasiTit' colspan='2' style='height:25px;text-transform:uppercase;text-decoration:underline;'>$nomliga</td>
</tr>";
echo "<tr>";
echo "<td></td>";
while($salida = mysql_fetch_array($resultado)){
$salida[nombreE] = substr($salida[nombreE], 0, 3);
echo "<td class='nombreE'>$salida[nombreE]</td>";

}
echo "</tr>";
echo "<tr>";

while($salida2 = mysql_fetch_array($resultado2)){
echo "<td class='nombreE_Tot' style='width:130px'>$salida2[nombreE]</td>";
echo "</tr>";
}
echo "</table>";


?>

Espero que me podaís ayudar a crear la tabla con sus datos.
Gracias
  #5 (permalink)  
Antiguo 22/08/2011, 12:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Alguien podria ayudarme?

El problema lo tengo a la hora de presentar la tabla con sus datos, alguien podría darme un ejemplo o explicarme por donde podría tirar?

Gracias
  #6 (permalink)  
Antiguo 22/08/2011, 12:37
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 10 años, 10 meses
Puntos: 306
Respuesta: Tabla + Consulta Mysql

Hola
Prueba haciendo esa tabla que muestras en html puro, pero con dos filas, y analizas que va en cada celda, así te darás cuenta de como hacer el php.

<table>
fila 1
<tr>
<td>Equipos</td> Esta celda es fija
<td>Equipo1</td> imprimes esta celda tantas veces como equipos tengas ->php
</tr>


fila2
<tr>
<td>"Equipo1" </td> imprimes un equipo ->php
<td>Resultado1-vs</td> imprimes todos los resultados de equipo1 vs el resto
filtrando cuando los equipos sean iguales, con while, etc
</tr>

vuelves a imprimir la fila2 pero cambiando a equipo2 y así sucesivamente
esto lo lograras aplicando un ciclo (while, for etc) a la fila2

</table>
saludos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #7 (permalink)  
Antiguo 23/08/2011, 05:33
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Muchas gracias por la ayuda que ofreceis la verdad.

Volviendo a mi problema, no doy con la tecla para poder generar la tabla con los datos que comento.

Por un lado me lia bastante el tema de tener que poner los equipos en la parte derecha y luego en la parte superior, como lo hago con dos consultas? con una me vale?

Luego como comparo un equipo de la derecha con uno superior para que me muestre el resultado entre ellos y si no han jugado un signo algo asi -

Espero que me ayuden por favor.
Gracias
  #8 (permalink)  
Antiguo 23/08/2011, 05:39
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Tienes todos los equipos almacenados en alguna otra tabla? Porque si los tienes, puedes hacer un JOIN completo y te saldrán tanto los partidos jugados como los que están sin jugar, que te devolverá null en el resultado. Así puedes diferenciar fácilmente cuáles son los no jugados, pero siempre tendrás todos los cruces.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #9 (permalink)  
Antiguo 23/08/2011, 06:11
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Los equipos los tengo tanto en la tabla que te comento como en la tabla clasificacion por ejemplo.

Como deberia ser tanto la estructura de la tabla como la o las sentencias para mostrar todo lo que necesito?

Gracias por el interes.

Un saludo
  #10 (permalink)  
Antiguo 23/08/2011, 07:17
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Bueno, esto es tema de diseño de bases de datos, pero te diré cómo lo haría yo:
- Tabla Equipo: con los datos de los equipos (nombre y lo que sea necesario) y un id_equipo.
- Tabla Resultado: en el que se incluyeran los ids de los dos equipos participantes como id_local e id_visitante y los goles_local y goles_visitante.

Teniendo así la tabla, la consulta se te quedaría igual para recoger los resultados:
Código MySQL:
Ver original
  1. SELECT * FROM Resultado ORER BY id_local, id_visitante

Pero tienes una diferencia sustancial, que es que los equipos no se identifican por el nombre, sino por un índice autoincremental. Luego puedes utilizarlo para saber dónde tienes que imprimir cada uno.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #11 (permalink)  
Antiguo 23/08/2011, 07:33
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Para explicarlo mejor, te pongo datos:
- Tabla Equipo:
Código:
id_equipo |  nombre
--------------------
        1 |   Barça
        2 |  Madrid
        3 | Sevilla
- Tabla Resultado:
Código:
id_local | id_visitante | goles_local | goles_visitante
--------------------------------------------------------
       1 |            2 |           1 |               0
       1 |            3 |           0 |               2
       3 |            1 |           3 |               1
Para estos datos, la consulta:
Código MySQL:
Ver original
  1. SELECT L.id_equipo AS id_local, L.nombre AS local, R.goles_local, V.id_equipo AS id_visitante, V.nombre AS visitante, R.goles_visitante
  2. FROM Equipo L, Equipo V, Resultado R
  3. WHERE ((R.id_visitante = V.id_equipo) AND (R.id_local = L.id_equipo))
  4. ORDER BY id_local, id_visitante
Devolerá:
Código:
id_local |  local  | goles_local | id_visitante | visitante | goles_visitante
-------------------------------------------------------------------------------------
      1 |    Barça |           1 |            2 |    Madrid |               0
      1 |    Barça |           0 |            3 |   Sevilla |               2
      3 |  Sevilla |           3 |            1 |     Barça |               1
Con esto un un bucle ya puedes hacer la tabla que quieres hacer, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #12 (permalink)  
Antiguo 24/08/2011, 06:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Hola de nuevo,
gracias por la explicacion la verdad es que da gusto que la gente ayude de esta manera. La explicacion la he entendido perfectamente pero no puedo implementarlo asi porque tendría que volver hacer el proyecto entero.

Tengo una pregunta :
Tengo la tabla resultados de esta manera:

1 Barcelona 1 Madrid 0
1 Valencia 3 Betis 1
1 Malaga 0 Osasuna 2
2 Barcelona 2 Betis 1
2 Valencia 1 Madrid 0
2 Osasuna 2 Depor 1

Los numeros 1 y 2 son las jornadas y aproximadamente hay 38.

Mi duda es como puedo generar una consulta para que me devuelva el resultado de esta manera:

Barcelona 1-0 2-1
Madrid 0-1 0-1
Valencia 3-1 1-0
etc...
Es decir que me muestre el equipo y sus resultados en la misma fila.

Llevo varios dias con esto y me estoy volviendo loco.

Gracias
  #13 (permalink)  
Antiguo 24/08/2011, 07:17
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Con SQL no puedes hacer que campos de diferentes registros aparezcan en el mismo registro del resultado de la consulta, lo que sí puedes hacer es reordenar los registros para que aparezcan en el orden que tú quieres y luego, con php, darles el formato deseado.

En tu caso, un ejemplo sería el siguiente:
SELECT * FROM Tabla ORDER BY Equipo1, Jornada

De esta forma, el resultado será una tabla en que aparecerán seguidos y ordenados los resultados de todas las jornadas para cada equipo (por orden alfábetico). Lo demás lo tienes que hacer con PHP.

Si te sirve de ayuda, que te veo que vas por ahí con los tiros, en un bucle que recorra el resultado de la consulta puedes llevar una variable que almacene el valor que tenía un dato en la iteración anterior de dicho bucle. Algo así:
Código PHP:
Ver original
  1. $sql = "CONSULTA";
  2. $result = mysql_query($sql, $ddbb);
  3. $equipo = "";
  4. while ($row = mysql_fetch_array($result)) {
  5.    if ($equipo != $row['equipo']) {
  6.       // En este punto hemos tenido un cambio de equipo desde la iteración anterior a la actual.
  7.       $equipo = $row['equipo']; // Guardamos el equipo para la iteración siguiente.
  8.    } else {
  9.       // En este punto el equipo actual es igual que el de la iteración anterior.
  10.    }
  11. }

Con esta simple estructura unida con la consulta que te puse antes, puedes hacer un bucle que recorra todos los resultados de la consulta, de forma que cuando detectes un cambio de equipo, te pases a la siguiente fila de la tabla, que creo que es lo que andas buscando.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #14 (permalink)  
Antiguo 24/08/2011, 08:50
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Hola de nuevo y gracias por tus respuestas.
Con esto ultimo que me has puesto la verdad que me he perdido bastante más. No entiendo muy bien lo de la itinerancia.

Lo que necesito lo has clavado es decir quiero que me ponga un equipo y me muestre sus resultados pero no tengo manera de que me muestre nada. He probado tu codigo pero quizás este poniendo algo mal, porque no me aparece nada.

La verdad no se por donde seguir pero lo pienso y creo que no tiene que ser muy complicado pero no se por donde tirar. Seguro que soy yo que no lo acabo de entender porque tal y como lo explicas queda claro, pero ni idea.

Si no es mucho pedir, podrías hacerme un ejemplo con un tabla y sus bucles?
Para poner los equipos tanto en la parte derecha como arriba tengo que hacer dos consultas o solo una?

Ahora mismo tengo la tabla creada y los equipos donde tocan con dos consultas pero es imposible o mejor dicho no se como poner sus resultados respectivos al lado de cada equipo.

De nuevo muchas gracias por tu interes....si funciona te debo una cerveza!!!!
  #15 (permalink)  
Antiguo 24/08/2011, 08:57
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

No se si es una burrada o si esta bien pero el código que tengo de momento es el siguiente:

Código:
$resultado=mysql_query("SELECT nombreE FROM clasificacion where categoria='Segona B Grup III' ORDER BY nombreE",$link);
$resultado2=mysql_query("SELECT nombreE FROM clasificacion where categoria='Segona B Grup III' ORDER BY nombreE",$link);
$resultado3=mysql_query("SELECT nombreL,resL,resV FROM resultados where categoria='Segona B Grup III' ORDER BY nombreL,nombreV",$link);


echo"
<table border='1' width='865px'>
	<tr>
		<td>
			Equipos
		</td>";
			while($salida = mysql_fetch_array($resultado)){
			echo "<td class='nombreE'>$salida[nombreE]</td>";
		}
		
echo" 
	</tr>
	<tr>";
	
		while($salida2 = mysql_fetch_array($resultado2)){
			echo "<td class='nombreE'>$salida2[nombreE]</td>";
			
				while($salida3 = mysql_fetch_array($resultado3)){
				echo "<td class='nombreE'>$salida3[resL]-$salida3[resV]</td>";
				}
		
		echo"</tr>";
		}
		
echo "
</table>
";
De esta manera me muestra los equipos arriba y a la derecha pero los resultados solo me los muestra en el primer td del primer equipo.

Un saludo
  #16 (permalink)  
Antiguo 24/08/2011, 09:47
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Puedes por favor ponerme la estructura que tienen las tablas clasificacion y resultados?

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #17 (permalink)  
Antiguo 24/08/2011, 10:15
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Tengo la tabla clasificacion :

id_equipo - id_clasi- NombreEquipo - Pts

Tengo algunos campos más, pero no creo que afecten en nada ya que son simplemente informacion...goles a favor en contra,etc...

La tabla resultados :

id_jornada - Local - ResL - Visitante - ResV - Estado

En esta parte lo ya lo genero todo es decir cuando el estado es FINAL ya sumo puntos, goles,etc...


Un saludo
  #18 (permalink)  
Antiguo 24/08/2011, 10:19
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Qué es id_equipo e id_clasi? No entiendo esa tabla.
En la tabla resultados en Local y Visitante metes el nombre del equipo o un id? Y ResL y ResV son los goles de cada equipo?

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #19 (permalink)  
Antiguo 24/08/2011, 10:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Te explico estos campos mejor.

id_equipo: es un numero unico. Este campo lo utilizo para mostrar la ficha de un equipo en concreto.
id_clasi: es la posicion en la clasificacion. Primero, segundo,etc...

En la tabla resultados en Local y Visitante pongo el nombre del Equipo y ResL es el resultado del equipo Local y resV el del equipo Visitante.

Cualquier duda dime y te lo explico sin problemas.
Gracias por todo.

Un saludo
  #20 (permalink)  
Antiguo 24/08/2011, 10:56
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

No lo he ejecutado, pero esto en teoría debería funcionarte (he puesto los nombres de campos que me has puesto en el último correo, pero luego veo que tienes otros en el código, repasa eso):
Código PHP:
Ver original
  1. $rsEquipo = mysql_query("SELECT nombreEquipo FROM clasificacion WHERE categoria = 'Segona B Grup III' ORDER BY nombreEquipo", $link) or die (mysql_error());
  2. $rsResult = mysql_query("SELECT Local, resL, Visitante, resV FROM resultados WHERE categoria = 'Segona B Grup III' ORDER BY Local, Visitante", $link) or die (mysql_error());
  3.  
  4. echo "<table border='1' width='865px'>
  5.     <tr>
  6.         <td>Equipos</td>
  7. ";
  8. $equipos = array();
  9. $i = 0;
  10. // Primer bucle para imprimir la cabecera de la tabla.
  11. while ($row = mysql_fetch_array($rsEquipo)) {
  12.  
  13.     echo "      <td class='nombreE'>" . $row['nombreEquipo'] . "</td>";
  14.     // Aprovechamos para rellenar un array de equipos por orden alfabético.
  15.     $equipos[$i] = $row['nombreEquipo'];
  16.     $i++;
  17. }
  18. echo "  </tr>
  19. ";
  20.  
  21. $equipo = "";
  22. $i = 0;
  23. // Bucle para imprimir una fila de la tabla por cada equipo.
  24. while ($row = mysql_fetch_array($rsResult)){
  25.     // Si detectamos cambio de equipo hay que hacer:
  26.     if ($equipo != $row['Local']) {
  27.         // Saltamos a la siguiente fila de la tabla,
  28.         echo "  </tr>
  29.     <tr>
  30. ";
  31.         // imrpimimos el nuevo equipo,
  32.         echo "      <td class='nombreE'>" . $row['Local'] . "</td>";
  33.         // actualizamos $equipo para la siguiente iteración y
  34.         $equipo = $row['Local'];
  35.         // reiniciamos $i para volver a recorrer todos los equipos.
  36.         $i = 0;
  37.     }
  38.  
  39.     // Este bucle se ejecuta imprimiendo celdas en blanco hasta llegar a un equipo contra el que haya jugado.
  40.     while ($equipos[$i] != $row['Visitante']) {
  41.         echo "      <td>--</td>
  42. ";
  43.         $i++;
  44.     }
  45.     // Una vez salta, ya sabemos que aquí hay que imprimir los datos
  46.     echo "      <td>" . $row['resL'] . "-" . $row['resV'] . "</td>
  47. ";
  48. }
  49. echo "  </tr>
  50. ";
  51. echo "</table>
  52. ";

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #21 (permalink)  
Antiguo 24/08/2011, 11:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

La verdad es que estamos cerca,jejeje pero hay algo que todavía no acaba de funcionar.

Muestra todos los datos pero no de forma correcta.
Te adjunto una imagen para que tu mismo veas como queda. He modificado mis campos.



Algunos resultados los muestra bien pero se pasa de largo a la hora de mostrar. No se porque puede ser, pero esto tiene buena pinta.

Gracias por la ayuda.

Un saludo y haber si podemos poner fin a esto.
  #22 (permalink)  
Antiguo 24/08/2011, 11:31
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Te adjunto la imagen. La url la tenia mal.

  #23 (permalink)  
Antiguo 24/08/2011, 11:47
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

He comentado unas lineas del codigo para que no se pase a la hora de mostrarme los resultados.

Es esta :
Código:
// Este bucle se ejecuta imprimiendo celdas en blanco hasta llegar a un equipo contra el que haya jugado.
        /*while ($equipos[$i] != $row['nombreV']) {
            echo "<td>--</td>";
            $i++;
        }*/
De esta manera cuadra más, pero me falta una columna por rellenar. Si no lo entiendes dime y te explico mejor.

Un saludo
  #24 (permalink)  
Antiguo 24/08/2011, 12:20
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

En la tabla de Resultados tienes sólo los partidos que se han jugado o tienes también los que no se han jugado sin los goles metidos?

Si es así, que creo que sí, ya que te salen todos los resultados repetidos (19 + 19 veces), lo que tienes que hacer es sustituir el bucle que te pasé antes por este:
Código PHP:
Ver original
  1. // Bucle para imprimir una fila de la tabla por cada equipo.
  2. while ($row = mysql_fetch_array($rsResult)){
  3.     // Si detectamos cambio de equipo hay que hacer:
  4.     if ($equipo != $row['Local']) {
  5.         // Saltamos a la siguiente fila de la tabla,
  6.         echo "  </tr>
  7.    <tr>
  8. ";
  9.         // imrpimimos el nuevo equipo,
  10.         echo "      <td class='nombreE'>" . $row['Local'] . "</td>";
  11.         // actualizamos $equipo para la siguiente iteración y
  12.         $equipo = $row['Local'];
  13.         // reiniciamos la $i
  14.         $i = 0;
  15.     }
  16.  
  17.     // Si estamos en la columna del equipo cuya fila estamos imprimiendo, ponemos vacío para eliminar cruce consigo mismo.
  18.     if ($equipos[$i] == $row['Local']) {
  19.         echo "      <td>-</td>
  20. ";
  21.     }
  22.     $i++;
  23.     // Una vez salta, ya sabemos que aquí hay que imprimir los datos
  24.     echo "      <td>" . $row['resL'] . "-" . $row['resV'] . "</td>
  25. ";
  26. }

Esto lo que hace es imprimir siempre el resultado, ya que si el partido no se ha jugado, el resultado estará sin rellenar. Lo único que hay que tener en cuenta es que un equipo no se cruza consigo mismo, luego hay que saltarse manualmente dicha columna, con el if que te pongo dentro del bucle.

Un saludo.

PD: Normalmente no doy un código de este tamaño o no lo suelo dar, sólo hago correcciones a los códigos que trae la gente, pero no veo que intentes hacer las cosas, así que te lo he dado, también para quitarme este tema ya de encima, que ya son muchos post para esto. De todas formas, te aviso que tu diseño de la base de datos deja bastante que desear, tienes tablas locas, sin relación unas con otras, se pueden meter datos a mala leche y dejaría todo de funcionar, no controlas nada, la tabla resultado y la de equipos no están conectadas, utilizas nombres de campos que no tienen sentido, pones id_ delante de los campos sin saber lo que significa y podría seguir, pero ya estoy en casa y mi novia me está esperando. En fin, mi recomendación es que eches un buen ojo a un manual de Diseño de Bases de Datos, porque un buen Diseño de la misma facilita enormente todo el resto de la aplicación y te ahorra un montón de problemas.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 24/08/2011 a las 12:32 Razón: Añadir PD
  #25 (permalink)  
Antiguo 24/08/2011, 12:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Buffff tio eres una maquina. Ahora cuadra perfecto.

De verdad que no sabes como te lo agradezco. Muchas gracias por tu tiempo y esfuerzo en serio.

Solo una cosa más que no se si será cosa mia de la tabla que creo o algo por el estilo.
En el último tr y ultimo td no me aparece celda. Es decir en el último equipo cuando juega contra si mismo ( nunca jugará contra si mismo ) debería aparecer un - conforme ese partido nunca se juega, pero en vez del guión no me aparece nada, es como si no tuviera td.

Sabes porque puede ser?

Por lo demás vuelvo a darte las gracias en serio. Me has salvado.
  #26 (permalink)  
Antiguo 24/08/2011, 12:48
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Tabla + Consulta Mysql

Ya esta todo solucionado. Muchas gracias de nuevo y seguire tu consejo.

Un saludo!
  #27 (permalink)  
Antiguo 25/08/2011, 02:20
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 8 meses
Puntos: 253
Respuesta: Tabla + Consulta Mysql

Tienes que añadir el último manualmente, porque ya se sale del while, así que tienes que añadir el último td fuera del bucle.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: mysql, tabla
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:42.