Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ^Tifa^ en 25 Abril 2009, 07:14 am



Título: Organizar Tabla HTML
Publicado por: ^Tifa^ en 25 Abril 2009, 07:14 am
Hola.

Tengo un sencillo hasta el momento formulario en Html lo unico que hace es tener un textbox para que el usuario inserte la palabra a buscar en la base de datos. Bien tengo el archivo PHP que recibe los datos del formulario html :

Código
  1.  
  2. require_once("requisito.php");
  3.  
  4. class Seleccion extends Rosa {
  5.  
  6. public function Conectando() {
  7.  
  8. $varia = $_POST['palabra'];
  9.  
  10. try {
  11.  
  12. if ( $conexión = mysql_connect($this->servidor, $this->usuario, $this->contrasena) ) {
  13. mysql_select_db("primaria", $conexión);
  14.  
  15. $consulta = mysql_query("SELECT * FROM ejemplo WHERE nombres LIKE '$varia%'", $conexión) or die(mysql_error());
  16.  
  17. if ( mysql_num_rows($consulta) == 0 ) {
  18.  
  19. echo "No hay datos\n";
  20.  
  21. }
  22.  
  23. /* Aca en este Punto me imprime la tabla primero lo que esta dentro del bucle While,
  24.     y al finalizar la devuelta de registros, me imprime la cabecera de la tabla */
  25.  
  26. print "<table border=2><tr><td bgcolor='red'>TITULO</td><td bgcolor='gray'>NOMBRES</td></tr>";
  27.  
  28. while ($registros = mysql_fetch_array($consulta, MYSQL_NUM)) {
  29. print "<td bgcolor='orange'>$registros[0]</td><td  bgcolor='blue'>$registros[1]</td></tr>";
  30.  
  31. }
  32. print "</table>";
  33.  
  34. mysql_free_result($consulta);
  35.  
  36. } else {
  37.  
  38. throw new Exception("Error al consultar\n");
  39.  
  40. }
  41.  
  42.  
  43. } catch ( Exception $e ) {
  44.  
  45. print $e->getMessage();
  46.  
  47. }
  48.  
  49. }
  50.  
  51. function __destruct() {
  52.  
  53. $this->servidor = null;
  54. $this->usuario = null;
  55. $this->contrasena = null;
  56.  
  57. }
  58.  
  59. }
  60.  
  61. $personas = new Seleccion();
  62. $personas->Conectando();
  63.  
  64.  
  65.  

Como indico dentro del codigo en la linea del While, al imprimirme los resultados en una web, me salen primero los registros devueltos encontrados en la tabla y luego al final me pone la cabecera de la Tabla  :-\  no deberia funcionar al inverso? puesto que declaro la tabla primero que el bucle while....? O estoy obviando algo...


Título: Re: Organizar Tabla HTML
Publicado por: Nakp en 25 Abril 2009, 07:39 am
ehm.. pues para mi no es obvio que primero se ejecute el while y después todos los print restantes, pero podrias concatenar todos los datos en una cadena e imprimir todo despues del while  ;D


Título: Re: Organizar Tabla HTML
Publicado por: Toxico en 26 Abril 2009, 00:02 am
Hola wapa.


Código:
while ($registros = mysql_fetch_array($consulta, MYSQL_NUM)) {
print "<tr><td bgcolor='orange'>$registros[0]</td><td  bgcolor='blue'>$registros[1]</td></tr>";
 
}


Veo que falta un <tr> talvez sea ese el problema al inicio del print.

Un Saludo
Miguel Angel


Título: Re: Organizar Tabla HTML
Publicado por: Anibal784 en 26 Abril 2009, 21:01 pm
Así como dice @Akado, te falta abrir la fila (etiqueta tr) dentro del while, es así que el navegador no sabe cómo interpretar eso y es que manda macana. Una muy buena idea para ver qué es lo que pasa, es ver el código html que tiene el navegador (que es el generado por php) para ver si es correcto.


Título: Re: Organizar Tabla HTML
Publicado por: дٳŦ٭ en 26 Abril 2009, 22:44 pm
Para salir de dudas.

Código:
if ( mysql_num_rows($consulta) == 0 ) {
 
echo "No hay datos\n";
 
}
 
/* Aca en este Punto me imprime la tabla primero lo que esta dentro del bucle While,
    y al finalizar la devuelta de registros, me imprime la cabecera de la tabla */
 
print_r($registros)
 


 
mysql_free_result($consulta);

Y nos pones la salida.  ;)