Complejo Equipo Programador / Calendario (PHP / MySQL)

  • Ifrit
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jun 07, 2004
  • Mensajes: 196
  • Loc: Portugal
  • Status: Offline

Nota Julio 21st, 2008, 5:49 am

He estado intentando durante los últimos días para lograr algo que finalmente considerará fuera de mi liga en lo que respecta a la programación.

Tengo que crear / generar una pantalla gráfica que muestra cuándo y dónde un equipo tiene que ser en un momento determinado en un día.

Mi MYSQL cuadro muestra los siguientes datos:

TEAM_ID | CLIENTE / UBICACIÓN | BEGIN HORA | HORA FINAL | DÍA |
1 | FOO | 8 | 11 | 2008-06-07 |
1 | BAR | 9 | 12 | 2008-06-07 |
2 | FOO | 10 | 13 | 2008-06-07 |
2 | JOE | 15 | 18 | 2008-06-07 |
3 | FOO | 18 | 20 | 2008-06-07 |
3 | JOE | 10 | 19 | 2008-06-07 |
4 | BAR | 8 | 14 | 2008-06-07 |


Me puede mostrar esta información fácilmente, pero mi cliente necesita que se mostrará gráficamente.

Ive tropezó con algunos problemas tratando de hacerlo por mí mismo, principalmente debido a la superposición de eventos (que se permite que se producen), por lo que yo quería preguntar a alguien ahí fuera para ver si había una sugerencia que podría seguir, un tutorial o algún otro tipo de ayuda, cualquier cosa sería muy apreciado.

ps, porque habrá eventos recurrentes, el control de eventos se superponen que debe hacerse en "tiempo de ejecución", no tengo ni idea de cómo lograrlo...

He añadido una foto para ilustrar la salida requerida.

Imagen
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Julio 21st, 2008, 5:49 am

  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de Usuario
  • Registrado: May 22, 2004
  • Mensajes: 3415
  • Loc: Richland, WA
  • Status: Offline

Nota Julio 21st, 2008, 6:24 am

Tengo que trabajar la cabeza, pero si tengo el tiempo libre, todo voy a abordar este problema para ya. Sólo quería hacerle saber que alguien está buscando una respuesta para usted. :)
#define NULL (::rand() % 2)
  • Ifrit
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jun 07, 2004
  • Mensajes: 196
  • Loc: Portugal
  • Status: Offline

Nota Julio 21st, 2008, 6:28 am

Se me olvidó mencionar este es PHP / MySQL

Estoy muy agradecido, falso.
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Julio 21st, 2008, 7:21 am

tal vez algo como esto podría funcionar?
Código: [ Select ]
<?php
$sql= mysql_query('SELECT * FROM table ORDER BY day,team, begin_hour');
$date1 = '';
$date2 = '';
$datecount = 0;
$team1 = '';
$team2 = '';
$teamcount = 0;
while ($row = mysql_fetch_array($sql))
{
$date1 = $row['day'];
$team1 = $row['team'];
if ($date1 == $date2)
{
//everything happens in here
if ($team1 == $team2)
{
echo "<span style='margin-left:" . $row['start_time'] . "opx width:" . ($row['end-time'] - $row['start-time']) . "0px;'>" . $row['client_location'] . "</span>";
}
else
{
if ($teamcount == 0)
{
echo "<div class='team'>";
echo "<p>" . $row['team'] . "</p>";
echo "<span style='margin-left:" . $row['start_time'] . "opx width:" . ($row['end-time'] - $row['start-time']) . "0px;'>" . $row['client_location'] . "</span>";
}
else
{
echo "</div><div class='team'>";
echo "<p>" . $row['team'] . "</p>";
echo "<span style='margin-left:" . $row['start_time'] . "opx width:" . ($row['end-time'] - $row['start-time']) . "0px;'>" . $row['client_location'] . "</span>";
}
}
//end
}
else
{
if ($datecount == 0)
{
echo "<div class='date'>";
$datecount ++;
}
else
{
echo "</div><div class='date'>";
}
}

$team2 = $row['team'];
$date2 = $row['day'];
}
echo "</div></div>";
?>
  1. <?php
  2. $sql= mysql_query('SELECT * FROM table ORDER BY day,team, begin_hour');
  3. $date1 = '';
  4. $date2 = '';
  5. $datecount = 0;
  6. $team1 = '';
  7. $team2 = '';
  8. $teamcount = 0;
  9. while ($row = mysql_fetch_array($sql))
  10. {
  11. $date1 = $row['day'];
  12. $team1 = $row['team'];
  13. if ($date1 == $date2)
  14. {
  15. //everything happens in here
  16. if ($team1 == $team2)
  17. {
  18. echo "<span style='margin-left:" . $row['start_time'] . "opx width:" . ($row['end-time'] - $row['start-time']) . "0px;'>" . $row['client_location'] . "</span>";
  19. }
  20. else
  21. {
  22. if ($teamcount == 0)
  23. {
  24. echo "<div class='team'>";
  25. echo "<p>" . $row['team'] . "</p>";
  26. echo "<span style='margin-left:" . $row['start_time'] . "opx width:" . ($row['end-time'] - $row['start-time']) . "0px;'>" . $row['client_location'] . "</span>";
  27. }
  28. else
  29. {
  30. echo "</div><div class='team'>";
  31. echo "<p>" . $row['team'] . "</p>";
  32. echo "<span style='margin-left:" . $row['start_time'] . "opx width:" . ($row['end-time'] - $row['start-time']) . "0px;'>" . $row['client_location'] . "</span>";
  33. }
  34. }
  35. //end
  36. }
  37. else
  38. {
  39. if ($datecount == 0)
  40. {
  41. echo "<div class='date'>";
  42. $datecount ++;
  43. }
  44. else
  45. {
  46. echo "</div><div class='date'>";
  47. }
  48. }
  49. $team2 = $row['team'];
  50. $date2 = $row['day'];
  51. }
  52. echo "</div></div>";
  53. ?>

usted sólo tiene que añadir algo de CSS para que...
Let's leave all our *plum* where it is and go live in the jungle ...
  • Ifrit
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jun 07, 2004
  • Mensajes: 196
  • Loc: Portugal
  • Status: Offline

Nota Julio 21st, 2008, 10:21 am

righteous_trespasser, le doy las gracias de una tonelada por la ayuda

ive intentado aplicar, pero no im 100% seguro de lo que lo, ¿podría tal vez quisiera saber cuál es su línea de pensamiento fue, haciendo que el código?
  • alex89
  • Bronze Member
  • Bronze Member
  • Avatar de Usuario
  • Registrado: Jul 18, 2008
  • Mensajes: 239
  • Loc: Western Australia
  • Status: Offline

Nota Julio 21st, 2008, 11:39 am

Muy impresionante. Malos pasar por línea por línea para usted. (De vuelta a los números de línea)

2: establece una variable llamada $ sql (véase 9)
3-8: conjuntos de variables a ""
9: comienza un bucle (mysql ejecuta una consulta para todos los datos en el cuadro, organizada por día, equipo, comenzar hora) y hasta de datos
11-12: recibe datos de la base de datos para las variables date1 & team1
13: si el equipo es la misma que la anterior (véase 50)
16: si la fecha es la misma que la anterior (véase 51)
18: Echos algunos html (con un lapso en el margen izquierdo start_time píxeles, con ancho de start_time - finish_time -- diciendo cliente ubicación)
20: otra cosa, si el equipo es diferente de la anterior entrada en el PP
22: si teamcount es cero (sin equipo)
24-26: div de la clase "equipo" (uso de css para hacer bonito) dice que el equipo, y luego otro lapso (véase 18)
28: otra cosa, si es diferente teamcount
30-32: Dar por concluido el div (24), por ejemplo equipo, otro espacio de
37: otra cosa, si es diferente fecha de entrada anterior en el PP
39: y si teamcount es cero (el equipo existe)
41-42: div class = "fecha", aumentar la datecount
44: otra cosa, si datecount no es cero
46: div fin, empezar uno nuevo (para la nueva fecha)
50-51: team2 conjunto que se team1 actual, y para el mismo date2
53: cerrar ambos divs

Espero He recibido este derecho. Así que, en principio, genera una imagen y se extiende utilizando divs (divs necesitamos una hoja de css con los estilos. Y fecha. Equipo) de una tabla llamada "tabla" en una base de datos mysql con las columnas de "start_time", "end_time", "client_location "," Equipo ", y" día ".

Si tiene en ejecución un servidor apache, php y mysql, le dan un tiro (uso phpadmin para crear la mesa y db).

Para hacer: Conectar a la db (en la parte superior), se desconectará (en la parte inferior), escribir una hoja de css y hacer la mesa.

Si te quedas atascado, me pueden enviar información más detallada :)
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Julio 21st, 2008, 12:15 pm

Gracias alex, yo estaba ocupado tocando el olvido, esta última misión es imposible damn...
Let's leave all our *plum* where it is and go live in the jungle ...
  • alex89
  • Bronze Member
  • Bronze Member
  • Avatar de Usuario
  • Registrado: Jul 18, 2008
  • Mensajes: 239
  • Loc: Western Australia
  • Status: Offline

Nota Julio 21st, 2008, 12:17 pm

righteous_trespasser escribió:
Gracias alex, yo estaba ocupado tocando el olvido, esta última misión es imposible damn...

Jugó la expansión? Creo que he completado todas las misiones - la que uno se bloquea en usted?
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Julio 21st, 2008, 12:37 pm

/ / La última misión principal de la búsqueda...en el "paraíso"...su dura freakin...sino porque esa es mi espada sucks...hace unos minutos he recogido uno nuevo y ahora acaba de cortar Im todo a pedazos...
Let's leave all our *plum* where it is and go live in the jungle ...
  • Ifrit
  • Graduate
  • Graduate
  • Avatar de Usuario
  • Registrado: Jun 07, 2004
  • Mensajes: 196
  • Loc: Portugal
  • Status: Offline

Nota Julio 21st, 2008, 3:14 pm

He terminado esta parte del proyecto con éxito, sin embargo no pude obtener su código de trabajo, righteous_trespasser, muchas gracias, sin embargo.
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8212
  • Loc: USA
  • Status: Offline

Nota Julio 21st, 2008, 7:01 pm

:lol: Bueno, funciona, pero no exactamente como usted lo desea. Lo tengo que trabajar en mi demo de prueba y demuestra lo bien casi todos los...hay algunas cosas que hay que hacer...Im haciendo ahora gif "alt =":)" title =" Smile ">

Aquí es cómo la fuente (después de algunas modificaciones al PHP) se parece a
HTML Código: [ Select ]
<div class='date'>
</div>
<div style='margin-left:90px; width:30px; background-color: #CECECE;'>
BAR
</div>
<div style='margin-left:100px; width:30px; background-color: #CECECE;'>
FOO
</div>
<div style='margin-left:150px; width:30px; background-color: #CECECE;'>
JOE
</div>
<div style='margin-left:180px; width:20px; background-color: #CECECE;'>
FOO
</div>
<div style='margin-left:100px; width:90px; background-color: #CECECE;'>
JOE
</div>
<div style='margin-left:80px; width:60px; background-color: #CECECE;'>
BAR
</div>
  1. <div class='date'>
  2. </div>
  3. <div style='margin-left:90px; width:30px; background-color: #CECECE;'>
  4. BAR
  5. </div>
  6. <div style='margin-left:100px; width:30px; background-color: #CECECE;'>
  7. FOO
  8. </div>
  9. <div style='margin-left:150px; width:30px; background-color: #CECECE;'>
  10. JOE
  11. </div>
  12. <div style='margin-left:180px; width:20px; background-color: #CECECE;'>
  13. FOO
  14. </div>
  15. <div style='margin-left:100px; width:90px; background-color: #CECECE;'>
  16. JOE
  17. </div>
  18. <div style='margin-left:80px; width:60px; background-color: #CECECE;'>
  19. BAR
  20. </div>
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8212
  • Loc: USA
  • Status: Offline

Nota Julio 21st, 2008, 8:22 pm

Alright...Lo tengo que trabajar...algo :lol:

Código: [ Select ]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Team Schedular</title>
<style type="text/css">
<!--
.container {
margin-left: -157px;
}

.team {
background-color: #dddddd;
}

ul.daten {
list-style-type: none;
margin-left: 157px;
}

ul.daten li {
float: left;
background-color: #ffffff;
color: #000000;
width: 25px;
}
//-->
</style>
</head>
<body>
<div class="container">
<?php
mysql_connect('host','user','pass');
mysql_select_db("database");

$sql= mysql_query('SELECT * FROM table ORDER BY day,team_id,begin_hour');

while ($row = mysql_fetch_assoc($sql))
{

    $date1 = $row['day'];
    $team1 = $row['team'];
    if ($date1 == $date2)
    {

        $team = $row['client'];
        $margin = $row['begin_hour'] * 25;
        $width = ($row['end_hour'] - $row['begin_hour']) * 25;
        $client = $row['client'];
        $location = $row['location'];
    
        echo " <div class=\"team_cont\">\n";

        echo <<< EOT
<div style='margin-left: {$margin}px; width: {$width}px; background-color: #CECECE;'>
$team - $location
</div>

EOT;
        
        echo " </div>\n";
    }
    else
    {

        echo <<<EOT
<ul class="daten">
<li>08</li>
<li>09</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
<li>21</li>
<li>22</li>
<li>23</li>
</ul>

EOT;
    }
    $date2 = $row['day'];
}
?>
</div>
</body>
</html>
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  4. <head>
  5. <title>Team Schedular</title>
  6. <style type="text/css">
  7. <!--
  8. .container {
  9. margin-left: -157px;
  10. }
  11. .team {
  12. background-color: #dddddd;
  13. }
  14. ul.daten {
  15. list-style-type: none;
  16. margin-left: 157px;
  17. }
  18. ul.daten li {
  19. float: left;
  20. background-color: #ffffff;
  21. color: #000000;
  22. width: 25px;
  23. }
  24. //-->
  25. </style>
  26. </head>
  27. <body>
  28. <div class="container">
  29. <?php
  30. mysql_connect('host','user','pass');
  31. mysql_select_db("database");
  32. $sql= mysql_query('SELECT * FROM table ORDER BY day,team_id,begin_hour');
  33. while ($row = mysql_fetch_assoc($sql))
  34. {
  35.     $date1 = $row['day'];
  36.     $team1 = $row['team'];
  37.     if ($date1 == $date2)
  38.     {
  39.         $team = $row['client'];
  40.         $margin = $row['begin_hour'] * 25;
  41.         $width = ($row['end_hour'] - $row['begin_hour']) * 25;
  42.         $client = $row['client'];
  43.         $location = $row['location'];
  44.     
  45.         echo " <div class=\"team_cont\">\n";
  46.         echo <<< EOT
  47. <div style='margin-left: {$margin}px; width: {$width}px; background-color: #CECECE;'>
  48. $team - $location
  49. </div>
  50. EOT;
  51.         
  52.         echo " </div>\n";
  53.     }
  54.     else
  55.     {
  56.         echo <<<EOT
  57. <ul class="daten">
  58. <li>08</li>
  59. <li>09</li>
  60. <li>10</li>
  61. <li>11</li>
  62. <li>12</li>
  63. <li>13</li>
  64. <li>14</li>
  65. <li>15</li>
  66. <li>16</li>
  67. <li>17</li>
  68. <li>18</li>
  69. <li>19</li>
  70. <li>20</li>
  71. <li>21</li>
  72. <li>22</li>
  73. <li>23</li>
  74. </ul>
  75. EOT;
  76.     }
  77.     $date2 = $row['day'];
  78. }
  79. ?>
  80. </div>
  81. </body>
  82. </html>

Los problemas con que se...
  • Doesnt mostrar el primer resultado
  • Usted no ha indicado lo que quiere ser para grupos, así que ensuciado la base de datos de hasta...Puedo usar los clientes para los grupos y los clientes para su ubicación. El team_id es un team_id que hice en la base de datos. Una clave principal
Aquí es cómo se parece a mi base de datos para la prueba de
SQL Código: [ Select ]
CREATE TABLE `test` (
 `team_id` tinyint(4) NOT NULL AUTO_INCREMENT,
 `client` varchar(255) NOT NULL,
 `location` varchar(25) NOT NULL,
 `begin_hour` varchar(2) NOT NULL,
 `end_hour` varchar(2) NOT NULL,
 `day` varchar(10) NOT NULL,
 PRIMARY KEY (`team_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
 
INSERT INTO `test` (`team_id`, `client`, `location`, `begin_hour`, `end_hour`, `day`) VALUES
(1, '1', 'FOO', '8', '11', '2008-06-07'),
(2, '1', 'BAR', '9', '12', '2008-06-07'),
(3, '2', 'FOO', '10', '13', '2008-06-07'),
(4, '2', 'JOE', '15', '18', '2008-06-07'),
(5, '3', 'FOO', '18', '20', '2008-06-07'),
(6, '3', 'JOE', '10', '19', '2008-06-07'),
(7, '4', 'BAR', '8', '14', '2008-06-07');
  1. CREATE TABLE `test` (
  2.  `team_id` tinyint(4) NOT NULL AUTO_INCREMENT,
  3.  `client` varchar(255) NOT NULL,
  4.  `location` varchar(25) NOT NULL,
  5.  `begin_hour` varchar(2) NOT NULL,
  6.  `end_hour` varchar(2) NOT NULL,
  7.  `day` varchar(10) NOT NULL,
  8.  PRIMARY KEY (`team_id`)
  9. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
  10.  
  11. INSERT INTO `test` (`team_id`, `client`, `location`, `begin_hour`, `end_hour`, `day`) VALUES
  12. (1, '1', 'FOO', '8', '11', '2008-06-07'),
  13. (2, '1', 'BAR', '9', '12', '2008-06-07'),
  14. (3, '2', 'FOO', '10', '13', '2008-06-07'),
  15. (4, '2', 'JOE', '15', '18', '2008-06-07'),
  16. (5, '3', 'FOO', '18', '20', '2008-06-07'),
  17. (6, '3', 'JOE', '10', '19', '2008-06-07'),
  18. (7, '4', 'BAR', '8', '14', '2008-06-07');

Espero que esto le ayuda y le ayuda a alguien para solucionar los problemas enumerados :lol:

(PS: El crédito es por aquí...Usé la función R_Ts y editado un poco...
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • alex89
  • Bronze Member
  • Bronze Member
  • Avatar de Usuario
  • Registrado: Jul 18, 2008
  • Mensajes: 239
  • Loc: Western Australia
  • Status: Offline

Nota Julio 21st, 2008, 9:17 pm

Nice work! Me gustaría mucho tuvo como tiempo libre como usted :)
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8212
  • Loc: USA
  • Status: Offline

Nota Julio 21st, 2008, 9:34 pm

Mustve tenido conmigo sobre una hora y 30 minutos para hacerlo. El hombre que necesito para tener una vida :lol:
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • alex89
  • Bronze Member
  • Bronze Member
  • Avatar de Usuario
  • Registrado: Jul 18, 2008
  • Mensajes: 239
  • Loc: Western Australia
  • Status: Offline

Nota Julio 21st, 2008, 9:37 pm

¡Vaya, Im media hora de retraso para una fecha - Ive got a la vida sino que interfiere con mi vida la codificación :(
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Julio 21st, 2008, 9:37 pm

Publicar Información

  • Total de mensajes en este tema: 27 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 191 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC