Foros del Web » Programando para Internet » PHP »

Problema con Consulta PHP + MySQL

Estas en el tema de Problema con Consulta PHP + MySQL en el foro de PHP en Foros del Web. Hola gente como están, necesito que alguien me colabore por favor. Sucede que tengo una BD con 4 tablas: 1. Usuario 2. Telefono 3. Mail ...
  #1 (permalink)  
Antiguo 21/11/2011, 16:12
 
Fecha de Ingreso: noviembre-2011
Mensajes: 4
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Problema con Consulta PHP + MySQL

Hola gente como están, necesito que alguien me colabore por favor.
Sucede que tengo una BD con 4 tablas:
1. Usuario
2. Telefono
3. Mail
4. Celular

Código SQL:
Ver original
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.4.5
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 21-11-2011 a las 21:58:28
  7. -- Versión del servidor: 5.5.16
  8. -- Versión de PHP: 5.3.8
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11. SET time_zone = "+00:00";
  12.  
  13.  
  14. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  15. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  16. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  17. /*!40101 SET NAMES utf8 */;
  18.  
  19. --
  20. -- Base de datos: `directorio_mas`
  21. --
  22.  
  23. -- --------------------------------------------------------
  24.  
  25. --
  26. -- Estructura de tabla para la tabla `dmas_celular`
  27. --
  28.  
  29. CREATE TABLE IF NOT EXISTS `dmas_celular` (
  30.   `cel_id` INT(10) NOT NULL AUTO_INCREMENT,
  31.   `cel_numero` VARCHAR(20) DEFAULT NULL,
  32.   `usu_id` INT(10) NOT NULL,
  33.   PRIMARY KEY (`cel_id`),
  34.   KEY `idusuarioincelular_fk` (`usu_id`)
  35. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  36.  
  37. --
  38. -- Volcado de datos para la tabla `dmas_celular`
  39. --
  40.  
  41. INSERT INTO `dmas_celular` (`cel_id`, `cel_numero`, `usu_id`) VALUES
  42. (1, '3175162483', 1),
  43. (2, '3208909765', 1);
  44.  
  45. -- --------------------------------------------------------
  46.  
  47. --
  48. -- Estructura de tabla para la tabla `dmas_mail`
  49. --
  50.  
  51. CREATE TABLE IF NOT EXISTS `dmas_mail` (
  52.   `mai_id` INT(10) NOT NULL AUTO_INCREMENT,
  53.   `mai_mail` VARCHAR(100) DEFAULT NULL,
  54.   `usu_id` INT(10) NOT NULL,
  55.   PRIMARY KEY (`mai_id`),
  56.   KEY `idusuarioinmail_fk` (`usu_id`)
  57. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  58.  
  59. --
  60. -- Volcado de datos para la tabla `dmas_mail`
  61. --
  62.  
  63. INSERT INTO `dmas_mail` (`mai_id`, `mai_mail`, `usu_id`) VALUES
  64.  
  65. -- --------------------------------------------------------
  66.  
  67. --
  68. -- Estructura de tabla para la tabla `dmas_telefono`
  69. --
  70.  
  71. CREATE TABLE IF NOT EXISTS `dmas_telefono` (
  72.   `tel_id` INT(10) NOT NULL AUTO_INCREMENT,
  73.   `tel_numero` VARCHAR(20) DEFAULT NULL,
  74.   `tel_extension` VARCHAR(20) DEFAULT NULL,
  75.   `usu_id` INT(10) NOT NULL,
  76.   PRIMARY KEY (`tel_id`),
  77.   KEY `idusuariointelefono_fk` (`usu_id`)
  78. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
  79.  
  80. --
  81. -- Volcado de datos para la tabla `dmas_telefono`
  82. --
  83.  
  84. INSERT INTO `dmas_telefono` (`tel_id`, `tel_numero`, `tel_extension`, `usu_id`) VALUES
  85. (1, '6399090', NULL, 1),
  86. (2, '6542345', '13', 1);
  87.  
  88. -- --------------------------------------------------------
  89.  
  90. --
  91. -- Estructura de tabla para la tabla `dmas_usuario`
  92. --
  93.  
  94. CREATE TABLE IF NOT EXISTS `dmas_usuario` (
  95.   `usu_id` INT(10) NOT NULL AUTO_INCREMENT,
  96.   `usu_nombre` VARCHAR(100) DEFAULT NULL,
  97.   `usu_descripcion` VARCHAR(100) DEFAULT NULL,
  98.   `usu_estado` VARCHAR(2) DEFAULT NULL,
  99.   `usu_imagen` VARCHAR(100) DEFAULT NULL,
  100.   PRIMARY KEY (`usu_id`)
  101. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  102.  
  103. --
  104. -- Volcado de datos para la tabla `dmas_usuario`
  105. --
  106.  
  107. INSERT INTO `dmas_usuario` (`usu_id`, `usu_nombre`, `usu_descripcion`, `usu_estado`, `usu_imagen`) VALUES
  108. (1, 'Acualago', 'Cliente PAC', '1', NULL);
  109.  
  110. --
  111. -- Restricciones para tablas volcadas
  112. --
  113.  
  114. --
  115. -- Filtros para la tabla `dmas_celular`
  116. --
  117. ALTER TABLE `dmas_celular`
  118.   ADD CONSTRAINT `idusuarioincelular_fk` FOREIGN KEY (`usu_id`) REFERENCES `dmas_usuario` (`usu_id`);
  119.  
  120. --
  121. -- Filtros para la tabla `dmas_mail`
  122. --
  123. ALTER TABLE `dmas_mail`
  124.   ADD CONSTRAINT `idusuarioinmail_fk` FOREIGN KEY (`usu_id`) REFERENCES `dmas_usuario` (`usu_id`);
  125.  
  126. --
  127. -- Filtros para la tabla `dmas_telefono`
  128. --
  129. ALTER TABLE `dmas_telefono`
  130.   ADD CONSTRAINT `idusuariointelefono_fk` FOREIGN KEY (`usu_id`) REFERENCES `dmas_usuario` (`usu_id`);
  131.  
  132. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  133. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  134. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

La división de las tablas las realizo así ya que un cliente puede tener más varios datos diferentes de: teléfono (fijo), celular y/o mail.

al realizar el procedimiento en el PHP me encuentro con lo siguiente:




Aquí está el código que estoy utilizando:

Código PHP:
Ver original
  1. echo '<div class="">
  2.               <table width="800" class="forTablePost" border="0" cellspacing="0" cellpadding="4">
  3.               <tr align="left">
  4.                 <td><strong>DESCRIPCIÓN</strong></td>
  5.                 <td><strong>TELÉFONO</strong></td>
  6.                 <td><strong>EXT</strong></td>
  7.                 <td><strong>CELULAR</strong></td>
  8.                 <td><strong>MAIL</strong></td>
  9.               </tr>';
  10.        
  11.         $runQueryTask = mysql_query("SELECT du.usu_id, dt.tel_numero, dt.tel_extension, dc.cel_numero, dm.mai_mail
  12. FROM dmas_usuario du LEFT JOIN dmas_telefono dt ON du.usu_id = dt.usu_id
  13. LEFT JOIN dmas_celular dc ON dt.usu_id = dc.usu_id
  14. LEFT JOIN dmas_mail dm ON dc.usu_id = dm.usu_id
  15. WHERE du.usu_id = '$idCliente'", $link);
  16.         $ifData = mysql_num_rows($runQueryTask);
  17.         if ($ifData > 0) {
  18.             while ($callDataTask = mysql_fetch_array($runQueryTask)) {
  19.                 $numeroTel  = $callDataTask['tel_numero'];
  20.                 $extTel     = $callDataTask['tel_extension'];
  21.                 $numeroCel  = $callDataTask['cel_numero'];
  22.                 $mail       = $callDataTask['mai_mail'];
  23.        
  24.                 echo '<tr align="left">
  25.                          <td></td>
  26.                          <td>'.$numeroTel.'</td>
  27.                          <td>'.$extTel.'</td>
  28.                          <td>'.$numeroCel.'</td>
  29.                          <td>'.$mail.'</td>
  30.                       </tr>';
  31.             }
  32.         }
  33.         echo '</table>
  34.               </div>';


Y a lo que quiero llegar es a algo como:



Espero que me entiendan, muchas gracias!
  #2 (permalink)  
Antiguo 21/11/2011, 22:36
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con Consulta PHP + MySQL

segun mi opinion tienes 2 opciones una añador otra/s columna para añadir mas celulares y la otra hacer un update en la columna celular recojes primero el celular 1 que inserto mas el nuevo que añadio y lo aztualizas y te salen en la misma fila y en la misma columna ,nose podria servir no?
  #3 (permalink)  
Antiguo 22/11/2011, 04:47
 
Fecha de Ingreso: junio-2011
Mensajes: 68
Antigüedad: 12 años, 10 meses
Puntos: 4
Respuesta: Problema con Consulta PHP + MySQL

Has probado ha hacer un group by?
  #4 (permalink)  
Antiguo 22/11/2011, 08:03
 
Fecha de Ingreso: noviembre-2011
Mensajes: 4
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Problema con Consulta PHP + MySQL

Si, si he probado hacer un GROUP BY y también DISTINCT, pero nada de nada

Última edición por Dikeygy; 23/11/2011 a las 08:12

Etiquetas: mysql, sql, tabla, usuarios
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 20:24.