elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:21  


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Ocultar celdas de tablas con PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ocultar celdas de tablas con PHP  (Leído 2,129 veces)
Shon

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Ocultar celdas de tablas con PHP
« en: 13 Enero 2011, 17:57 »

Hola, tengo esto:

Código
<table>
<tr>
lo que sea
</tr>
 
<?php  while ($filas_resultados = mysql_fetch_assoc($resultados)) ?>
<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 Desconectado

Mensajes: 654



Ver Perfil
Re: Ocultar celdas de tablas con PHP
« Respuesta #1 en: 13 Enero 2011, 18:29 »

lo que debes de hacer es condicionar si el resultado no viene vacio algo asi
Código
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 Desconectado

Mensajes: 6.334

he vuelto :)


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #2 en: 13 Enero 2011, 20:05 »

lo que debes de hacer es condicionar si el resultado no viene vacio algo asi
Código
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 aqui

para 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 :P no la ocultes si no hay :xD cambia tu logica

Código
if(myslq_num_rows($resultados) > 0){
 //imprime la fila
 while ($filas_resultados = mysql_fetch_assoc($resultados)){
   //imprime los resultados
 }
}
« Última modificación: 13 Enero 2011, 20:07 por Nakp » En línea

Ojo por ojo, y el mundo acabará ciego.
RedZer


Desconectado Desconectado

Mensajes: 654



Ver Perfil
Re: Ocultar celdas de tablas con PHP
« Respuesta #3 en: 13 Enero 2011, 22:18 »

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 Desconectado

Mensajes: 1.052


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #4 en: 14 Enero 2011, 04:22 »

Que daño hizo Visual Basic xD
En línea

"Si cuando hablas nadie se molesta, eso es que no has dicho absolutamente nada."
WHK
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #5 en: 14 Enero 2011, 05:12 »

yo uso ! de plano y me ahorro las funciones

Código
if($filas_resultados = mysql_fetch_assoc($resultados)))
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

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #6 en: 14 Enero 2011, 18:12 »

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:

Código
<?php
$consulta= 'haces la consulta mysql';
$cons= mysql_query( $consulta, $link ); # metemos los datos a una variable
if( !mysql_num_rows($cons) ) # si esta vacio (sin datos)
   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:

Código
<?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 por Diabliyo » En línea

WHK
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #7 en: 14 Enero 2011, 18:40 »

Código
<?php
$consulta= 'haces la consulta mysql';
$cons= mysql_query( $consulta, $link ); # metemos los datos a una variable
if( !mysql_num_rows($cons) ) # si esta vacio (sin datos)
   echo 'Error';
else # existen datos, exito
   {
   echo 'resultados....';
   # ... el demas code...
   }
?>

Código
<?php
if(!$cons= mysql_query('haces la consulta mysql', $link ))
echo 'Error';
else{
echo 'resultados....';
}
?>
En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #8 en: 14 Enero 2011, 18:45 »

Código
<?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 por Diabliyo » En línea

WHK
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #9 en: 14 Enero 2011, 21:17 »

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:

Código
<?php
if(!$CMS) exit;
/*
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 */
  $handle = mysql_pconnect($host, $user, $pass);
 }else{ /* Crea una conexión momentanea */
  $handle = mysql_connect($host, $user, $pass);
 }
 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 */
 if(is_array($columnas)){
  foreach($columnas as $columna){
   $retorno[] = $columna['Field'];
  }
 }else{
  return false; /* No hay columnas */
 }
 return $retorno;
}
 
function update($tabla, $datos_array, $where = false){
 global $CMS;
 
 if(!is_array($datos_array))
  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']){
  if(is_array($pre_columnas)){
   foreach($pre_columnas as $pre_col){
    if(strtolower($pre_col) == 'id'){
     $existe_id = true;
     break;
    }
    unset($pre_col);
   }
  }
  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{
  $query['sql'] = sprintf(
   'insert into %s (%s) values (%s)',
   $tabla,
   implode(', ', array_map(array('str','filtro'), array_keys($datos_array), explode(';', str::left(str_repeat('sql_col_comp;', count($datos_array)), count($datos_array) * strlen('sql_col_comp;') - 1)))),
   implode(', ', array_map(array('str','filtro'), $datos_array,             explode(';', str::left(str_repeat('sql_comp;', count($datos_array)), count($datos_array) * strlen('sql_comp;') - 1))))
  );
 }
 
 /* Realiza la query */
 if(!@mysql_query($query['sql'], $this->handle)){ /* Query fallida */
  $err_no_sql = mysql_errno($this->handle);
 
  /* 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 */
    if(is_array($pre_columnas)){
     foreach($pre_columnas as $pre_col){
      if(strtolower($pre_col) == 'id'){
       $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;
   if(is_array($pre_columnas)){
    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 */
  if(mysql_query('
   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 */
  if(mysql_query('
   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 */
   @mysql_close($this->handle);
  }
  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 */
 while($fila = mysql_fetch_array($query_handle, MYSQL_ASSOC)){
  $retorno[] = $fila;
 }
 /* Libera la memoria si es necesario */
 @mysql_free_result($query_handle);
 
 
 /* Se ha solicitado solamente un valor o un array */
 if($un_valor){
  $retorno = $retorno[0];
  if(count($retorno) > 1){
   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 */
   if(!is_array($retorno))
    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;
}
 
}
 
?>

Código
<?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)){
  if(mysql_select_db($this->config->sql_dbname, $this->handle)){
   return $this->handle;
  }else{
   return false; /* DB not exist */
  }
 }else{
  return false; /* Server not found */
 }
}
 
function close(){
 return @mysql_close($this->handle);
}
 
function raw($query){
 return mysql_query($query, $this->handle);
}
 
function fast_select($query, $one_valor = false){
 /* Return all data in arrays */
 if(!$query_handle = mysql_query($query, $this->handle))
  return false;
 
 while($fila = mysql_fetch_array($query_handle, MYSQL_ASSOC)){
  $ret[] = $fila;
 }
 @mysql_free_result($query_handle);
 
 if($one_valor){
  $ret = $ret[0]; /* Less dimension of array */
  if(count($ret) > 1){
   return $ret;
  }else{
   if(!is_array($ret))
    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 por WHK » En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
Re: Ocultar celdas de tablas con PHP
« Respuesta #10 en: 14 Enero 2011, 21:52 »

Yasta men gracias por el code xD....
En línea

RedZer


Desconectado Desconectado

Mensajes: 654



Ver Perfil
Re: Ocultar celdas de tablas con PHP
« Respuesta #11 en: 15 Enero 2011, 00:09 »

 >:( estaba equivocado bueno disculpenmee la verdad pues aprendi algo new por que yo siempre lo habia echo de esa forma  :-X bueno Nakp  te debo una disculpa men
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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
celdas transparentes
Desarrollo Web
Mr.Chispa 9 2,505 Último mensaje 26 Noviembre 2006, 04:50
por Mr.Chispa
Problema con celdas
Desarrollo Web
rockstar1 4 462 Último mensaje 19 Diciembre 2006, 17:40
por rockstar1
Combinar celdas en DataGridView
.NET
elmaro 2 4,320 Último mensaje 5 Febrero 2008, 19:23
por elmaro
Concatenar celdas en GridLayout
Java
dPix 2 2,623 Último mensaje 21 Febrero 2009, 17:05
por dPix
autoajustar celdas TrueDBGrid
Programación Visual Basic
fabricioAngel 0 403 Último mensaje 12 Mayo 2009, 21:43
por fabricioAngel
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines