Foros del Web » Programando para Internet » PHP »

Contra registros separados por guiones en distintos campos

Estas en el tema de Contra registros separados por guiones en distintos campos en el foro de PHP en Foros del Web. Hola como estan necesito salir de una gran duda q tengo y si aguien me podria echar una mano, desde hace tiempo e tratado de ...
  #1 (permalink)  
Antiguo 01/02/2013, 22:58
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Contra registros separados por guiones en distintos campos

Hola como estan necesito salir de una gran duda q tengo y si aguien me podria echar una mano, desde hace tiempo e tratado de hacer una consulta y poder contar los registros de varios campos de una tabla, es decir que todos los registros existentes en una tabla, de la cedula 123456 de los campos y1,y2,y3,y4 se cuenten y me diga el total de registros de ese numro de cedula, el problema es q los registros estan guardados en los 4 campos de esta forma, 01-02-03-04, asi estan guardados en los 4 campos, aunq tambien se pueden registrar asi 01-02--, lo q quisiera es q solo cuente los registros mas no los espacion entre los guiones, por favor si alguien me pudiera echar una mano se lo agrdeceria mucho, este es el codigo q estoy usando solo me realiza el conteo del campo dish1, ya q solo tengo es declarado como podria hacer para los otrso tres campo,

Código PHP:
Ver original
  1. $sql=mysql_query("select dish1 from horarios where cod_doc = '38'") or die (mysql_error());
  2. while ($array=mysql_fetch_array($sql)) {
  3. echo $array['dish1'];
  4.  
  5. echo "<br>";
  6. echo "<br>";
  7. $comida=$array['dish1'];
  8. $separa=explode("-",$comida);
  9. $numero=count(array_diff($separa, array('')));
  10. echo "Hay ".$numero." Comidas";
  11. }
  12. echo "<br>";
  13. echo "<br>";
  #2 (permalink)  
Antiguo 01/02/2013, 23:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Contra registros separados por guiones en distintos campos

Pues de entrada ese es un pésimo diseño de Bases de Datos, pero bueno independiente de eso, puedes usar preg_split para separar por el - pero sin contar los vacios.

Saludos.
  #3 (permalink)  
Antiguo 01/02/2013, 23:05
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Contra registros separados por guiones en distintos campos

Bueno si tienes razon pero fue la unica manera q pude hacer para realizar los registros y funciono excelente y ya el sistema esta listo y si cambiaria algo pues se vendria todo al suelo y tendria q empezar desde cero, ya q soy un novato todavia en relaciones y entiddes de base de datos, y pues la verdad no sabria como aplicar es funcion q tu me dices preg_split
  #4 (permalink)  
Antiguo 01/02/2013, 23:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Contra registros separados por guiones en distintos campos

Revisa el manual hay un ejemplo de como usarla pasandole el parámetro de PREG_SPLIT_NO_EMPTY para evitar que te devuelva entradas vacías.

Saludos.
  #5 (permalink)  
Antiguo 01/02/2013, 23:10
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Contra registros separados por guiones en distintos campos

bueno te digo ya e logrado q no me cuente las entradas vacias, lo q quiero es como poder hacer q me cuente los registros de los 4 campos, asi como hice q me contara de un solo campo ahora q me cuente los campos o los campos q yo quisiera
  #6 (permalink)  
Antiguo 01/02/2013, 23:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Contra registros separados por guiones en distintos campos

Pues tendrías que hacer un ciclo y seleccionar los campos que quieres, si la estructura es la misma puedes usar un foreach() para repetir la estructura y tener todos tus campos, por ejemplo:
Código PHP:
Ver original
  1. $query = "SELECT campo1, campo2, campo3 FROM ..";
  2. $total = 0;
  3. foreach(array('campo1', 'campo2', 'campo3') as $campo) {
  4.        $total += // código que diseñaste para contar los campos
  5. }
  6.  
  7. echo $total;

Saludos.
  #7 (permalink)  
Antiguo 01/02/2013, 23:20
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Contra registros separados por guiones en distintos campos

ok una pregunta q hiria aqui no entiendo q tendria q hacer esta variable

$total += /
  #8 (permalink)  
Antiguo 01/02/2013, 23:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Contra registros separados por guiones en distintos campos

Cita:
Iniciado por ruben_chirinos_1985 Ver Mensaje
ok una pregunta q hiria aqui no entiendo q tendria q hacer esta variable

$total += /
Debe acumular el total, pero se supone que tú eres el que debe saber cómo realizar la suma (resta/multiplicación/división/lo que sea) ahí.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 01/02/2013, 23:35
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Contra registros separados por guiones en distintos campos

no entiendo nada de lo q me dijiste trate de hacerlo asi y solo me meustra q existe un registro donde en verdad hay como 23, aqui los codigos

Código PHP:
Ver original
  1. $sql=mysql_query("select dish1, dish2, dish3, dish4 from horarios where cod_doc = '2'") or die (mysql_error());
  2. $total = 0;
  3. foreach(array('dish1', 'dish2', 'dish3', 'dish4') as $campo) {
  4. while ($array=mysql_fetch_array($sql)) {
  5.  
  6. $separa=explode("-",$campo);
  7. $numero=count(array_diff($separa, array('')));
  8. echo "Hay ".$numero." ";
  9. }
  10. }
  #10 (permalink)  
Antiguo 01/02/2013, 23:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Contra registros separados por guiones en distintos campos

Tienes al revez, el while debe de estar por fuera (suponiendo que cod_doc regrese más de un registro) y dentro del while (en caso de que aplique) es donde tiene que ir el foreach() y donde haces el conteo.

Saludos.

Etiquetas: campos, contra, distintos, mysql, registro, registros, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:50.