Ir al contenido


Foto

Error al utilizar combinación de tablas en PhP "LEFT JOIN ON"


  • Por favor identifícate para responder
2 respuestas en este tema

#1 Javano

Javano

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 12 junio 2015 - 11:06

Buen día a todos espero que tengan un excelente día, bueno les comento mi inquietud.
Estoy practicando php y mysql, tengo una base de datos llamada concesionario la cual tiene tres tablas "autos,vendedores,ventas" las cuales están relacionadas, autos con ventas y vendedores con ventas, para mi ejercicio coloque solo 4 campos en la tabla ventas "id_ventas, fecha, id_autos, id_vendedores", como se puede observar para poder mostrar datos de esta tabla se deben hacer una consulta a las otras dos tablas realice la consulta en MySQL  así

sql
  1. SELECT ventas.fecha, vendedores.nombre, vendedores.apellidos, autos.marca, autos.placa FROM ventas LEFT JOIN autos ON ventas.id_auto = autos.id_autos LEFT JOIN vendedores ON ventas.id_vendedor=vendedores.id_vendedores;

y me muestra los resultas que le pido, pero al momento de montar el código en el script con php me muestra este error
 
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\concesionario\listarventas.php on line 27
 
el código que utilizo para mostrar en la web es este
 

php
  1. <?php
  2. include ("conectarse.php");
  3. $link=Conectarse();
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9. <title>Documento sin título</title>
  10. </head>
  11.  
  12. <body>
  13. <FORM ACTION="listarVendedores.php" >
  14. Agregar Nueva Venta
  15. <TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1 align="center">
  16. <TR>
  17. <Th>Fecha</Th>
  18. <Th colspan="2">Auto</Th>
  19. <Th colspan="2">Vendedor</Th>
  20. <Th>Acciones</Th>
  21. </TR>
  22. <?php
  23. $peticion="SELECT ventas.fecha, vendedores.nombre, vendedores.apellidos, autos.marca, autos.placa FROM ventas LEFT JOIN autos ON ventas.id_auto = autos.id_autos LEFT JOIN vendedores ON ventas.id_vendedor=vendedores.id_vendedores; order by fecha";
  24. $result=mysql_query($peticion,$link );
  25.  
  26. while($row = mysql_fetch_assoc($result))
  27. {?>
  28. <tr>
  29. <td><?php echo $row["fecha"] ?></td>
  30. <td><?php echo $row["marca"]?></td>
  31. <td><?php echo $row["placa"]?></td>
  32. <td><?php echo $row["nombre"]?></td>
  33. <td><?php echo $row["apellidos"]?></td>
  34. <td> <a href="modificar.php">Modificar</a> - Eliminar</td>
  35. </tr>
  36. <?php
  37. }
  38. ?>
  39. </table>
  40. <p></p>
  41. </FORM>
  42. </body>
  43. </html>

le agradezco me puedan colaborar identificando el error porque no doy cual es, el código de la BD completa es este
 

sql
  1. # Host: localhost (Version: 5.6.24)
  2. # DATE: 2015-06-11 11:54:43
  3. # Generator: MySQL-Front 5.3 (Build 4.214)
  4.  
  5. /*!40101 SET NAMES utf8 */;
  6.  
  7. #
  8. # STRUCTURE FOR TABLE "autos"
  9. #
  10.  
  11. DROP TABLE IF EXISTS `autos`;
  12. CREATE TABLE `autos` (
  13. `id_autos` INT(11) NOT NULL AUTO_INCREMENT,
  14. `marca` VARCHAR(30) CHARACTER SET utf8 NOT NULL DEFAULT '',
  15. `modelo` VARCHAR(10) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
  16. `tipo` VARCHAR(20) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
  17. `color` VARCHAR(15) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
  18. `placa` VARCHAR(10) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
  19. `precio` INT(11) NOT NULL DEFAULT '0',
  20. PRIMARY KEY (`id_autos`)
  21. ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
  22.  
  23. #
  24. # DATA FOR TABLE "autos"
  25. #
  26.  
  27. INSERT INTO `autos` VALUES (1,'renault','2010','deportivo','negro','abc100',2536000),(2,'Mazda','2009','automovil','Naranja','abc101',3025698),(3,'Ferrari','2011','deportivo','blanco','abc102',3625982),(4,'mercedes benz','2010',' camioneta','gris','abc103',4536254),(5,'honda','2010','convertible','amarillo','abc104',5236548),(6,'Mazda','2014','convertible','rojo','abc105',2365887),(7,'Ferrari','2016','Carrera','Rojo','abc106',125365989);
  28.  
  29. #
  30. # STRUCTURE FOR TABLE "vendedores"
  31. #
  32.  
  33. DROP TABLE IF EXISTS `vendedores`;
  34. CREATE TABLE `vendedores` (
  35. `id_vendedores` INT(11) NOT NULL AUTO_INCREMENT,
  36. `cedula` INT(11) NOT NULL DEFAULT '0',
  37. `nombre` VARCHAR(40) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
  38. `apellidos` VARCHAR(40) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
  39. `direccion` VARCHAR(90) CHARACTER SET utf8 DEFAULT NULL,
  40. `telefono` VARCHAR(15) COLLATE utf8_spanish_ci DEFAULT NULL,
  41. PRIMARY KEY (`id_vendedores`)
  42. ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
  43.  
  44. #
  45. # DATA FOR TABLE "vendedores"
  46. #
  47.  
  48. INSERT INTO `vendedores` VALUES (1,654987,'fabian','lima','otro hueco peor','3121111110'),(2,646587,'edwin','luna','la montana','3107304117'),(3,9879878,'jaime','ochoa','otro hueco','3130000001'),(4,321464,'jeisser','rodriguez','el hueco','3116959616'),(6,123456,'geiver','miranda','ptw wilches','579878');
  49.  
  50. #
  51. # STRUCTURE FOR TABLE "ventas"
  52. #
  53.  
  54. DROP TABLE IF EXISTS `ventas`;
  55. CREATE TABLE `ventas` (
  56. `id_ventas` INT(11) NOT NULL AUTO_INCREMENT,
  57. `fecha` DATE NOT NULL DEFAULT '0000-00-00',
  58. `id_auto` INT(11) NOT NULL DEFAULT '0',
  59. `id_vendedor` INT(11) NOT NULL DEFAULT '0',
  60. PRIMARY KEY (`id_ventas`),
  61. KEY `llave_auto_ventas` (`id_auto`),
  62. KEY `llave_vendedores_ventas` (`id_vendedor`),
  63. CONSTRAINT `llave_auto_ventas` FOREIGN KEY (`id_auto`) REFERENCES `autos` (`id_autos`) ON DELETE CASCADE ON UPDATE CASCADE,
  64. CONSTRAINT `llave_vendedores_ventas` FOREIGN KEY (`id_vendedor`) REFERENCES `vendedores` (`id_vendedores`) ON DELETE CASCADE ON UPDATE CASCADE
  65. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
  66.  
  67. #
  68. # DATA FOR TABLE "ventas"
  69. #
  70.  
  71. INSERT INTO `ventas` VALUES (1,'2012-02-03',2,3),(2,'2012-05-01',1,2);

 

  • 0

#2 elporfirio

elporfirio

    Advanced Member

  • Miembros
  • PipPipPip
  • 182 mensajes
  • LocationMy House @ México

Escrito 12 junio 2015 - 12:20

En la linea 26 que pones en el código aqui en el foro.

 

  1. $result=mysql_query($peticion,$link );
  2.  
  3. while($row = mysql_fetch_assoc($result))
 
Inserta este codigo (despues del $result = bla bla bla) para probar que trae:
 

php
  1. die(var_dump($result));

 
Y nos dices que te muestra :) si no dice "mysql resource" significa que mysql_query no está funcionando

  • 0

#3 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 mensajes

Escrito 12 junio 2015 - 12:26


sql
  1. SELECT ventas.fecha, vendedores.nombre, vendedores.apellidos, autos.marca, autos.placa FROM ventas LEFT JOIN autos ON ventas.id_auto = autos.id_autos LEFT JOIN vendedores ON ventas.id_vendedor=vendedores.id_vendedores; ORDER BY fecha

Tienes un punto y coma antes de order by fecha.. ahi puede estar el problema... Igualmente verifica como te dice elporfirio


  • 0




IP.Board spam blocked by CleanTalk.