Organizar Tabla HTML

Iniciado por ^Tifa^, 25 Abril 2009, 07:14 AM

0 Miembros y 1 Visitante están viendo este tema.

^Tifa^

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 (php) [Seleccionar]


require_once("requisito.php");

class Seleccion extends Rosa {

public function Conectando() {

$varia = $_POST['palabra'];

try {

if ( $conexión = mysql_connect($this->servidor, $this->usuario, $this->contrasena) ) {
mysql_select_db("primaria", $conexión);

$consulta = mysql_query("SELECT * FROM ejemplo WHERE nombres LIKE '$varia%'", $conexión) or die(mysql_error());

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 "<table border=2><tr><td bgcolor='red'>TITULO</td><td bgcolor='gray'>NOMBRES</td></tr>";

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

}
print "</table>";

mysql_free_result($consulta);

} else {

throw new Exception("Error al consultar\n");

}


} catch ( Exception $e ) {

print $e->getMessage();

}

}

function __destruct() {

$this->servidor = null;
$this->usuario = null;
$this->contrasena = null;

}

}

$personas = new Seleccion();
$personas->Conectando();




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...

Nakp

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
Ojo por ojo, y el mundo acabará ciego.

Toxico

Hola wapa.


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
solo el principio....


Anibal784

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.
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.

дٳŦ٭

Para salir de dudas.


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.  ;)


Con sangre andaluza :)