Autor
|
Tema: Ocultar celdas de tablas con PHP (Leído 14,004 veces)
|
Shon
Desconectado
Mensajes: 34
|
Hola, tengo esto: <table> <tr> lo que sea </tr> <tr> <td> </td> <td> </td> .... + php (echo's) + <a> + <img> etc </tr> <?php } ?> </table>
como véis, pretendo ocultar la segunda fila de la tabla, si no hay resultados en una busqueda y, si lo hay, que lo muestre. Pues eso que pongo, no me lo muestra, ni cuando hay ni cuando no hay coincidencias. A alguien se le ocurre por qué? Gracias!!!!!
|
|
|
En línea
|
|
|
|
RedZer
Desconectado
Mensajes: 666
|
lo que debes de hacer es condicionar si el resultado no viene vacio algo asi if($filas_resultados!=' '){ se muestra la fila }else{ no se muestra la fila }
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.336
he vuelto :)
|
lo que debes de hacer es condicionar si el resultado no viene vacio algo asi if($filas_resultados!=' '){ se muestra la fila }else{ no se muestra la fila }
te he visto postear eso varias veces y dejame decirte que NO es correcto... '' != vacio, y mucho menos ' ' (con un espacio dentro) :¬¬ deja de postear eso, ya te lo explique aquipara eso existe la funcion empty() que comprueba si el array esta vacio sin embargo... en php existe la funcion mysql_num_rows imprime la segunda fila de tablas si hay resultados no la ocultes si no hay cambia tu logica if(myslq_num_rows($resultados) > 0){ //imprime la fila //imprime los resultados } }
|
|
« Última modificación: 13 Enero 2011, 20:07 pm por Nakp »
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
RedZer
Desconectado
Mensajes: 666
|
bueno solo trataba de ayudar a este chavo , ya que nada mas ven el post y no le dicen nada al menos yo le aporte algo ya el decide si lo utiliza o no .
|
|
|
En línea
|
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Que daño hizo Visual Basic xD
|
|
|
En línea
|
|
|
|
WHK
|
yo uso ! de plano y me ahorro las funciones echo 'ok'; else echo 'error';
mysql_fetch_* debuelve un array solamente cuando hay resultados pero no hay ninguna función nativa que te debuelva arrays vacios o strings con un chr(0), asi que false se compara por igual a un string vacio o un array vacio a exepción cuando procesas formulartios, ahi estoy acostumbrado a usar trim() solamente y ! directo en arrays. no se, es costumbre aunque lo mas correcto es usar empty() como dice nakp.
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
RedZer no es que se te insulte o menos aprecie tu intencion, pero vale mas un consejo bien dado que un consejo mal dado. En tu caso le estas ense~ando a los usuarios una mala forma de programar y a eso yo le llamo: contaminar, ya que creas un vicio, como el usuario lo recvie mal, lo ense~a a otras personas mal. Lo aconsejable es como lo menciona WHK y los demas, o bien como mi opinion, que primero resuelvo los errores y al final el exito, asi: <?php $consulta= 'haces la consulta mysql'; $cons= mysql_query( $consulta, $link ); # metemos los datos a una variable echo 'Error'; else # existen datos, exito { echo 'resultados....'; # ... el demas code... } ?>
En lo personal creo que es mucho mejor primero comprobar errores y despues poner el ELSE del exito, ya que si tenemos un formulario tipico de registro de usuario se nos generaria un engendro gigantes de if, else if, else if, else... que a fin de cuentas, los errores (mensajes) quedarian al final y al inicio lo exitos, pero mi consejo es que al principio los erroes y al final el exito, asi podras en un futuro modificar el codigo para mejorarlo o corregirlo sin tanto problema y perderte entre tanto { }. Ejemplo: <?php if( !strcmp($_POST["form_email"], "") ) echo 'Error: inserta un mail.'; else if( !validar_mail($_POST["form_email"]) ) echo 'Error Mail invalido.'; else if( otras variables ) echo 'Otros errores'; else echo 'Exito'; ?>
|
|
« Última modificación: 14 Enero 2011, 18:16 pm por Diabliyo »
|
En línea
|
|
|
|
WHK
|
<?php $consulta= 'haces la consulta mysql'; $cons= mysql_query( $consulta, $link ); # metemos los datos a una variable echo 'Error'; else # existen datos, exito { echo 'resultados....'; # ... el demas code... } ?>
<?php if(!$cons= mysql_query('haces la consulta mysql', $link )) echo 'Error'; else{ echo 'resultados....'; } ?>
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.441
shell# _
|
<?php if(!$cons= mysql_query('haces la consulta mysql', $link )) echo 'Error'; else{ echo 'resultados....'; } ?>
Jejejeje yo no acostumbro por el { delante y despues abajo el cierre }, me gusta dejar el espacio para poder dicernir en codigos extensos, ya es costumbre. Ya lo de hacer el mysql_query() dentro del IF, ya es personal, en mi caso lo hago distinto al ejemplo que di, acostumbro tener mi propio framework de mysql, para no hacer mysql_query(), sino algo asi: consultar( $b, $datos); y tengo mas funciones para diversas cosas: consulta indexada, consulta por limites, etc, etc... Pero la idea es clara...
|
|
« Última modificación: 14 Enero 2011, 18:48 pm por Diabliyo »
|
En línea
|
|
|
|
WHK
|
yo hace tiempo hize un framework también completo y esta es la clase de mysql por si te sirve, le he hecho como 3 versiones diferentes y cada uno tiene cosas que pulir y cambiar, por eso le he hecho tantos cambios: <?php /* Framework-DrawCoders admin@drawcoders.com Creado por : DrawCoders Nombre del archivo : class_poo_sql.php Version del archivo : 1.1 Fecha de modificación : 12 Octubre 2010 */ class sql{ var $handle; var $host = '127.0.0.1'; var $user; var $pass; var $bdatos; var $persistente = true; function connect($host, $user, $pass, $bdatos, $persistente = true){ $this->host = $host; $this->user = $user; $this->pass = $pass; $this->bdatos = $bdatos; $this->persistente = $persistente; /* Crea el handle de SQL */ if($persistente){ /* Crea una conexión persistente */ }else{ /* Crea una conexión momentanea */ } if($handle){ /* Verifica que el handle sea válido */ if(mysql_select_db($bdatos, $handle)){ /* Selecciona la base de datos del servidor MySQL */ return ($this->handle = $handle); /* Retorna el handle */ }else{ /* No existe la base de datos seleccionada, procede a crear una nueva */ if(!mysql_query('CREATE DATABASE '.$bdatos, $this->handle)){ mysql_close($this->handle); /* Cierra la conexión hacia la base de datos */ return false; /* Imposible crear la nueva base de datos */ }else{ return $handle; /* Retorna el handle */ } } }else{ /* Imposible conectarse a la abse de datos */ return false; } } function es_tabla($tabla = false){ /* Crea la query solicitando el estado de la tabla $tabla */ $respuesta = $this->selecciona('show table status like '.str::filtro($tabla, 'sql_comp'), true); /* Un resultado de una tabla existente consta de por lo menos dos columnas */ if(count($respuesta) > '2') return true; /* Existe */ else return false; /* No existe */ } function obtener_columnas($tabla){ if(!$columnas = $this->selecciona('show columns from '.$tabla)) return false; /* Tabla inexistente */ foreach($columnas as $columna){ $retorno[] = $columna['Field']; } }else{ return false; /* No hay columnas */ } return $retorno; } function update($tabla, $datos_array, $where = false){ global $CMS; return false; /* No es un array de datos */ /* Obtiene las columnas para su verificación */ $pre_columnas = $this->obtener_columnas($tabla); /* Creación automatizada de la columna id primaria */ if($CMS['MYSQL']['AUTO_ID']){ foreach($pre_columnas as $pre_col){ $existe_id = true; break; } } } if(!$existe_id){ if(!$datos_array['id']){ $datos_array = array('id' => '') + $datos_array; } } } /* Prepara el update */ if($where){ $query['sql'] = 'update '.str::filtro($tabla, 'sql_col_comp').' set '; foreach($datos_array as $columna => $valor){ $query['sql'] .= str::filtro($columna, 'sql_col_comp').' = '.str::filtro($valor, 'sql_comp').','; } $query['sql'] = str ::left($query['sql'], strlen($query['sql']) - 1).' where '.$where; /* Prepara el insert */ }else{ 'insert into %s (%s) values (%s)', $tabla, ); } /* Realiza la query */ if(!@mysql_query($query['sql'], $this->handle)){ /* Query fallida */ /* Declara los arrays iniciales */ $query['agrega_tabla'] = 'create table '.str::filtro($tabla, 'sql_col_comp').' ('; $query['agrega_columnas'] = 'alter table '.str::filtro($tabla, 'sql_col_comp').' '; if($CMS['MYSQL']['AUTO_ID']){ /* Creación automatizada de la columna id primaria */ if(!$contiene_id){ /* No existe la columna id en la query */ foreach($pre_columnas as $pre_col){ $existe_id = true; break; } } } if(!$existe_id){ /* No existe la columna id en la tabla */ $query['agrega_tabla'] .= '`id` INT NOT NULL AUTO_INCREMENT, index ( `id` ),'; $query['agrega_columnas'] .= 'ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD index ( `id` ),'; $contiene_id = true; } } } /* Crea el alter table o el create table */ foreach($datos_array as $columna => $valor){ /* Verifica las tablas existentes e inexistentes */ $existe_col = false; foreach($pre_columnas as $pre_col){ if($pre_col == str::filtro($columna, 'sql_col')){ $existe_col = true; break; } } } if(!$existe_col){ /* Solo agrega las columnas necesarias */ if(strtolower($columna) == 'id'){ /* id index numerico autoincrement */ if(!$contiene_id){ $query['agrega_tabla'] .= str::filtro($columna, 'sql_col_comp').' INT NOT NULL AUTO_INCREMENT, index ( `id` ),'; $query['agrega_columnas'] .= 'ADD '.str::filtro($columna, 'sql_col_comp').' INT NOT NULL AUTO_INCREMENT FIRST, ADD index ( `id` ),'; } }else{ $query['agrega_tabla'] .= str::filtro($columna, 'sql_col_comp').' TEXT NOT NULL,'; $query['agrega_columnas'] .= 'ADD '.str::filtro($columna, 'sql_col_comp').' TEXT NOT NULL,'; } } } unset($columna, $valor); /* Se eliminan las variables temporales */ /* Concluye los arrays iniciales */ $query['agrega_tabla'] = str ::left($query['agrega_tabla'], strlen($query['agrega_tabla']) - 1).' ) engine = InnoDB '; $query['agrega_columnas'] = str ::left($query['agrega_columnas'], strlen($query['agrega_columnas']) - 1); // echo $query['agrega_columnas']; exit; /* No existe la tabla, por lo tanto se creará una nueva */ if($err_no_sql == '1146'){ mysql_query($query['agrega_tabla'], $this->handle); /* Agrega la tabla */ if($this->es_tabla($tabla)){ /* Verifica que se haya creado la tabla */ /* Retorna una nueva query con las columnas nuevas ya creadas */ return $this->update($tabla, $datos_array, $where); }else{ return false; /* Imposible crear la tabla nueva */ } /* No existe la columna, por lo tanto se crearán todas nuevas */ }elseif($err_no_sql == '1054'){ @mysql_query($query['agrega_columnas'], $this->handle); /* Hace la query con la creación de las nuevas columnas */ /* Verifica que las columnas hayan sido insertadas correctamente */ $f = 0; if($columnas = $this->obtener_columnas($tabla)){ foreach($datos_array as $columna_ins => $valor_ins){ foreach($columnas as $columna){ if(str::filtro($columna_ins, 'sql_col') == $columna){ $f++; break; } } } if($f == count($datos_array)){ return $this->update($tabla, $datos_array, $where); /* Hace la query inicial nuevamente */ }else{ return false; /* Imposible insertar las nuevas columnas */ } }else{ return false; /* Imposible seleccionar las columnas */ } }else{ return false; /* Error desconocido */ } }else{ return true; /* Query realizada con éxito */ } } function crear_columna($tabla, $columna){ if($this->es_tabla($tabla)){ /* Verifica si la tabla existe */ ALTER TABLE '.str::filtro($tabla, 'sql_comp').' ADD '.str::filtro($columna, 'sql_comp').' TEXT NOT NULL', $this->handle)){ return true; /* Se agregó la nueva columna */ }else{ return false; /* Imposible agregar la nueva columna */ } }else{ /* Si no existe la tabla entonces la crea nueva */ CREATE TABLE '.str::filtro($tabla, 'sql').'( '.str::filtro($columna, 'sql_comp').' TEXT NOT NULL ) ENGINE = InnoDB ', $this->handle)){ return true; /* Nueva columna agregada */ }else{ return false; /* Imposible agregar una nueva columna */ } } } function eliminar_tabla($tabla){ return mysql_query('drop table '.$tabla, $this->handle); } function eliminar_fila($tabla, $where){ return mysql_query('delete from '.$tabla.' where '.$where, $this->handle); } function desconectar(){ if($this->handle){ if($CMS['UTILIZAR']['MYSQL']){ /* SQLite no cierra el handle porque no hay desconección */ } return true; }else return false; } function selecciona($query, $un_valor = false){ /* realiza la query */ if(!$query_handle = mysql_query($query, $this->handle)) return false; /* La query ha fallado */ /* Obtiene los resultados en un array */ $retorno[] = $fila; } /* Libera la memoria si es necesario */ /* Se ha solicitado solamente un valor o un array */ if($un_valor){ $retorno = $retorno[0]; return $retorno; /* Es un array con mas de una variable */ }else{ /* Es un array con una sola variable, por lo tanto debolvemos solamente el string */ return false; /* No hay datos para devolver debido a que necesitamos un string */ foreach($retorno as $variable => $valor){ /* Necesitamos solamente el valor del array debuelto */ return $valor; } } } return $retorno; } } ?>
<?php if(!included ) exit; class sql{ var $config; var $handle; function __construct(){ $this->config = new configuration(); /* Loaded for system() class */ } function connect(){ if($this->handle = mysql_pconnect($this->config->sql_host, $this->config->sql_username, $this->config->sql_password)){ return $this->handle; }else{ return false; /* DB not exist */ } }else{ return false; /* Server not found */ } } function close(){ } function raw($query){ } function fast_select($query, $one_valor = false){ /* Return all data in arrays */ if(!$query_handle = mysql_query($query, $this->handle)) return false; $ret[] = $fila; } if($one_valor){ $ret = $ret[0]; /* Less dimension of array */ return $ret; }else{ return false; /* No data */ foreach($ret as $var => $val){ /* Process only one result */ return $val; } } } return $ret; } } ?>
pero en fin, ya no desviemos mas el tema principal xD jajajaja
|
|
« Última modificación: 14 Enero 2011, 21:19 pm por WHK »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Combinar celdas en DataGridView
.NET (C#, VB.NET, ASP)
|
elmaro
|
2
|
11,224
|
5 Febrero 2008, 19:23 pm
por elmaro
|
|
|
Concatenar celdas en GridLayout
Java
|
dPix
|
2
|
8,727
|
21 Febrero 2009, 17:05 pm
por dPix
|
|
|
autoajustar celdas TrueDBGrid
Programación Visual Basic
|
Fabricio
|
0
|
1,675
|
12 Mayo 2009, 21:43 pm
por Fabricio
|
|
|
[Resuelto] ¿se puede forzar tamaño de celdas en tablas de html?
Desarrollo Web
|
Misterio_S
|
3
|
5,457
|
27 Diciembre 2014, 23:19 pm
por Misterio_S
|
|
|
Rastreo de Numeros telf o celdas repetidoras
Dudas Generales
|
tito7
|
0
|
2,070
|
5 Noviembre 2022, 04:40 am
por tito7
|
|