PHP-MySQL: ¿Necesita ayuda para crear HTML tabla multidimensional

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

Nota Agosto 15th, 2008, 4:05 am

Bien lo arreglé y ahora sí funciona...aquí es el resultado, y por debajo está el código:
Código: [ Select ]
<?php
$con = mysql_connect("localhost","ohdesign_root","Hennie@OhDesignX.com");
mysql_select_db("ohdesign_M4MobileTest");
$sql = mysql_query("SELECT students.name FROM students ORDER BY students.name");
echo "<table><tr><td></td>";
while ($row = mysql_fetch_array($sql))
{
echo "<td>" . $row['name'] . "</td>";
}
$sql = mysql_query("SELECT * FROM exam LEFT JOIN students ON exam.student_id = students.student_id ORDER BY exam.exam_name, students.name");
$old_exam = '';
$new_exam = '';
echo "</tr><tr>";
while ($row = mysql_fetch_array($sql))
{
$new_exam = $row['exam_name'];
if ($old_exam == $new_exam)
{
echo "<td>" .  $row['result'] . "</td>";
}
else
{
echo "</tr><tr><td>" . $row['exam_name'] . "</td><td>" . $row['result'] . "</td>";
}
$old_exam = $row['exam_name'];
}
echo "</tr></table>";
?>
  1. <?php
  2. $con = mysql_connect("localhost","ohdesign_root","Hennie@OhDesignX.com");
  3. mysql_select_db("ohdesign_M4MobileTest");
  4. $sql = mysql_query("SELECT students.name FROM students ORDER BY students.name");
  5. echo "<table><tr><td></td>";
  6. while ($row = mysql_fetch_array($sql))
  7. {
  8. echo "<td>" . $row['name'] . "</td>";
  9. }
  10. $sql = mysql_query("SELECT * FROM exam LEFT JOIN students ON exam.student_id = students.student_id ORDER BY exam.exam_name, students.name");
  11. $old_exam = '';
  12. $new_exam = '';
  13. echo "</tr><tr>";
  14. while ($row = mysql_fetch_array($sql))
  15. {
  16. $new_exam = $row['exam_name'];
  17. if ($old_exam == $new_exam)
  18. {
  19. echo "<td>" .  $row['result'] . "</td>";
  20. }
  21. else
  22. {
  23. echo "</tr><tr><td>" . $row['exam_name'] . "</td><td>" . $row['result'] . "</td>";
  24. }
  25. $old_exam = $row['exam_name'];
  26. }
  27. echo "</tr></table>";
  28. ?>
Let's leave all our *plum* where it is and go live in the jungle ...
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Agosto 15th, 2008, 4:05 am

  • eprompt
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Ago 13, 2008
  • Mensajes: 11
  • Status: Offline

Nota Agosto 15th, 2008, 6:02 am

Wow thats trabajo.
Muchas gracias. Ur verry útil.

Ahora mi tarea es poner a cero automáticamente "resultado" si theres campo vacío en la base de datos.
Thx de nuevo.
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Agosto 15th, 2008, 6:07 am

exactamente...Es un placer...
Let's leave all our *plum* where it is and go live in the jungle ...
  • eprompt
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Ago 13, 2008
  • Mensajes: 11
  • Status: Offline

Nota Agosto 15th, 2008, 6:31 am

Ups...sentimos que te molesten de nuevo, R_T.
He encontrado algún problema en la tabla resultado. Si borro los datos es decir, un Johns resultado Matemáticas.... Marcas Matemáticas resultado desplazadas a la izquierda, por lo que las marcas Matemáticas resultado en la posición de Johns matemáticas resultado.
Cómo solucionar esto?
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Agosto 15th, 2008, 6:38 am

Si no hay resultados entonces añadir un 0 a ese lugar...o que es imposible...?
Let's leave all our *plum* where it is and go live in the jungle ...
  • eprompt
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Ago 13, 2008
  • Mensajes: 11
  • Status: Offline

Nota Agosto 15th, 2008, 6:55 am

Esto es posible, pero si tengo nombre de 100 estudiantes y sólo 10 que han resultado del examen, entonces tengo que llenar de 0 a otros 90 estudiantes. Creo que no es eficiente.
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Agosto 15th, 2008, 7:02 am

I hear ya...Tal vez algo como esto podría funcionar...
Código: [ Select ]
<?php
$con = mysql_connect("localhost","ohdesign_root","Hennie@OhDesignX.com");
mysql_select_db("ohdesign_M4MobileTest");
$sql = mysql_query("SELECT students.name FROM students ORDER BY students.name");
echo "<table><tr><td></td>";
while ($row = mysql_fetch_array($sql))
{
echo "<td>" . $row['name'] . "</td>";
}
$sql = mysql_query("SELECT * FROM exam LEFT JOIN students ON exam.student_id = students.student_id ORDER BY exam.exam_name, students.name");
$old_exam = '';
$new_exam = '';
echo "</tr><tr>";
while ($row = mysql_fetch_array($sql))
{
$new_exam = $row['exam_name'];
if ($old_exam == $new_exam)
{
if (!$row['result'])
{
echo "<td></td>";
}
else
{
echo "<td>" .  $row['result'] . "</td>";
}
}
else
{
echo "</tr><tr><td>" . $row['exam_name'] . "</td><td>" . $row['result'] . "</td>";
}
$old_exam = $row['exam_name'];
}
echo "</tr></table>";
?>
  1. <?php
  2. $con = mysql_connect("localhost","ohdesign_root","Hennie@OhDesignX.com");
  3. mysql_select_db("ohdesign_M4MobileTest");
  4. $sql = mysql_query("SELECT students.name FROM students ORDER BY students.name");
  5. echo "<table><tr><td></td>";
  6. while ($row = mysql_fetch_array($sql))
  7. {
  8. echo "<td>" . $row['name'] . "</td>";
  9. }
  10. $sql = mysql_query("SELECT * FROM exam LEFT JOIN students ON exam.student_id = students.student_id ORDER BY exam.exam_name, students.name");
  11. $old_exam = '';
  12. $new_exam = '';
  13. echo "</tr><tr>";
  14. while ($row = mysql_fetch_array($sql))
  15. {
  16. $new_exam = $row['exam_name'];
  17. if ($old_exam == $new_exam)
  18. {
  19. if (!$row['result'])
  20. {
  21. echo "<td></td>";
  22. }
  23. else
  24. {
  25. echo "<td>" .  $row['result'] . "</td>";
  26. }
  27. }
  28. else
  29. {
  30. echo "</tr><tr><td>" . $row['exam_name'] . "</td><td>" . $row['result'] . "</td>";
  31. }
  32. $old_exam = $row['exam_name'];
  33. }
  34. echo "</tr></table>";
  35. ?>
Let's leave all our *plum* where it is and go live in the jungle ...
  • eprompt
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Ago 13, 2008
  • Mensajes: 11
  • Status: Offline

Nota Agosto 15th, 2008, 6:41 pm

Lo he intentado, y el resultado sigue siendo el mismo de antes.

He vez que el código...pero todavía no funciona.
Lo que quiero preguntarle es por qué esta parte de código:

Código: [ Select ]
...
if (!$row['result'])
{
echo "<td></td>";
}
...
  1. ...
  2. if (!$row['result'])
  3. {
  4. echo "<td></td>";
  5. }
  6. ...


No ejecutado por el programa?
O ejecutado?

(Lo siento, soy muy novato, esta es la primera vez que aprender acerca del lenguaje de programación)
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de Usuario
  • Registrado: Mar 12, 2007
  • Mensajes: 6228
  • Loc: South-Africa
  • Status: Offline

Nota Agosto 17th, 2008, 9:58 am

eprompt escribió:
(Lo siento, soy muy novato, es la primera vez que aprenden sobre el lenguaje de programación)

Me di cuenta...lo siento pero creo que puede ser tiempo para que pueda aprender un poco de la programación de su propio lugar de escribir me acaba de todo su sitio web para usted...Usted debe empezar aquí en su búsqueda para aprender PHP...Ese sería mi consejo de todos modos...

El código que se le preguntó por se supone que ejecutar solamente cuando una fila tiene un valor nulo en su interior...o ningún valor...
Let's leave all our *plum* where it is and go live in the jungle ...
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Enero 20th, 2009, 12:00 am

Para futura referencia, si tiene un campo vacío que todavía quieren que se va a imprimir...acaba de comprobar si su falso.

Normalmente, los campos vacíos se establece en false. He intentado muchas cosas, is_nul (); $ campo == "" y $ campo == false...y que las obras...

No hacer falsa === $ campo, un campo vacío, porque sería una cadena, y no un booleano .. sería una cadena de explotación el valor falso.

Si sabía esto cuando phplover necesita esto, lo habría hecho...pero no para esta prueba es así, como yo confiaba Righteous_trespasser :lol:
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • syca22
  • Born
  • Born
  • No Avatar
  • Registrado: Jul 03, 2009
  • Mensajes: 1
  • Status: Offline

Nota Julio 3rd, 2009, 9:01 am

Phplover Hola, he encontrado el mismo problema como el tuyo, para encontrar soluciones? Si es así ¿podría decirme cómo se resuelve? .. Muchas gracias de antemano ..

Saludos
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Julio 3rd, 2009, 9:58 am

syca22, por favor lea el puesto justo encima de la suya. Que responde a tu pregunta.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de Usuario
  • Registrado: May 21, 2004
  • Mensajes: 3229
  • Loc: South Africa
  • Status: Offline

Nota Julio 3rd, 2009, 3:05 pm

Umm yo estaba leyendo a través de esto una no puede dejar de notar las fallas enormes en el modelo de datos que aquí se propone.

A continuación se muestra lo que la clase más de cerca el modelo a la necesaria para el sistema de

Imagen

También he observado una gran cantidad de HTML incrustado. ¿Puedo proponer una cuerda estática con los titulares de lugar?

Código: [ Select ]
 
$cellTemplate = "<td>#VALUE#</td>";
$rowTemplate = "<tr>#CELL_DATA#</tr>";
 
// some loop here to construct the row
 
  1.  
  2. $cellTemplate = "<td>#VALUE#</td>";
  3. $rowTemplate = "<tr>#CELL_DATA#</tr>";
  4.  
  5. // some loop here to construct the row
  6.  


Otra opción sería tener una función que podría formato para usted

Código: [ Select ]
 
function RenderRow(Student $student){
 //replace function here for cell to contain the name
 
 // Loop here to populate subsequent data
 
 //return formatted string
}
 
  1.  
  2. function RenderRow(Student $student){
  3.  //replace function here for cell to contain the name
  4.  
  5.  // Loop here to populate subsequent data
  6.  
  7.  //return formatted string
  8. }
  9.  


En cualquier caso es mi granito de arena (como siempre estoy insistiendo en cerca de las estructuras de datos), pero espero que ayude a alguien.
Watch me grow
  • Bogey
  • Bogey
  • Genius
  • Avatar de Usuario
  • Registrado: Jul 14, 2005
  • Mensajes: 8211
  • Loc: USA
  • Status: Offline

Nota Julio 3rd, 2009, 3:10 pm

lol gracias perro rabioso. No sabía que hubiera mejores resultados...no volverá a suceder. Perdón :lol:
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Rabid Dog
  • Web Master
  • Web Master
  • Avatar de Usuario
  • Registrado: May 21, 2004
  • Mensajes: 3229
  • Loc: South Africa
  • Status: Offline

Nota Julio 3rd, 2009, 3:17 pm

LOL nada hay de malo en lo que veo, sólo una vez más tratando de punto algo a alguien que quiere tomar el tiempo y el modelo correctamente. Apuesto a que además de aprender algo :D
Watch me grow
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Julio 3rd, 2009, 3:17 pm

Publicar Información

  • Total de mensajes en este tema: 61 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 156 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