Foros del Web » Programando para Internet » PHP »

relacionar tablas

Estas en el tema de relacionar tablas en el foro de PHP en Foros del Web. Hola, estoy intentando hacer un ejercicio relacionando dos tablas la verdad es que no tengo mucha idea de como se hace, os muestro lo que ...
  #1 (permalink)  
Antiguo 08/09/2011, 12:50
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
relacionar tablas

Hola, estoy intentando hacer un ejercicio relacionando dos tablas la verdad es que no tengo mucha idea de como se hace, os muestro lo que hice y me echais un cable?

Muestro las dos bases de datos a relacionar:
Código:
--
-- Base de datos: `test`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `point`
--

CREATE TABLE IF NOT EXISTS `point` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `iduser` int(10) NOT NULL,
  `par1` varchar(2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Volcar la base de datos para la tabla `point`
--

INSERT INTO `point` (`id`, `iduser`, `par1`) VALUES
(1, 10, '12'),
(2, 16, '21'),
(3, 18, '12');
Código:
--
-- Base de datos: `test`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `test`
--

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `incl1` varchar(255) NOT NULL,
  `incl2` varchar(255) NOT NULL,
  `point` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;

--
-- Volcar la base de datos para la tabla `test`
--

INSERT INTO `test` (`id`, `incl1`, `incl2`, `point`) VALUES
(10, 'eduardbvguj', 'medina', 12),
(16, 'Juan pedro', 'medina', 470),
(18, 'eduardo', 'eduardo', 12);
Bien quiero relacionar los campos id.test con iduser.point

Muestro lo que hice:


Código PHP:
<?php

/**
 * @author skirlappa
 * @copyright 2011
 */
//Conectamos con la base de datos
$connect=mysql_connect("localhost","","")or die (mysql_error());
$selectDb mysql_select_db("test") or die (mysql_error());
$query=("SELECT test.id, test.incl1, point.iduser FROM test LEFT JOIN point ON test.id=point.iduser")or die (mysql_error());;
while(
$row=mysql_fetch_array($query))
{
    echo 
"<br>".$row[0]."<br>".$row[1]."<br>".$row[2]."<br><br><br>";
}

?>
He ejecutado la consulta en la consolo de phpmysql y me ha corrido sin problemas, pero a la hora de ejecutar el código me muestra el siguiente mensaje de error.

Código:
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\xampp\htdocs\curso\ejercicios post\point5.php on line 11
  #2 (permalink)  
Antiguo 08/09/2011, 12:57
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 2 meses
Puntos: 128
Respuesta: relacionar tablas

skirlappa , hola esto se debe a que no estas ejecutando la consulta, te falta la "sentencia" mysql_query la cuál se encarga de gatillar tú query, prueba de la siguiente manera:


Código PHP:
Ver original
  1. <?php
  2.  
  3. /**
  4.  * @author skirlappa
  5.  * @copyright 2011
  6.  */
  7. //Conectamos con la base de datos
  8. $connect=mysql_connect("localhost","","")or die (mysql_error());
  9. $selectDb = mysql_select_db("test") or die (mysql_error());
  10. $query=("SELECT test.id, test.incl1, point.iduser FROM test LEFT JOIN point ON test.id=point.iduser");
  11. $ejecuta=mysql_query($query) or die (mysql_error());
  12. while($row=mysql_fetch_array($ejecuta))
  13. {
  14.     echo "<br>".$row[0]."<br>".$row[1]."<br>".$row[2]."<br><br><br>";
  15. }
  16.  
  17. ?>


Además debería arrojar error de sintaxis, dado que el la línea de tu consulta terminabas con ;;

Saludos.


__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #3 (permalink)  
Antiguo 08/09/2011, 13:00
Avatar de blakmetall  
Fecha de Ingreso: diciembre-2010
Ubicación: Jalisco
Mensajes: 181
Antigüedad: 13 años, 4 meses
Puntos: 18
Respuesta: relacionar tablas

Otro metodo de relacionar tablas es el siguiente segun tu ejemplo que quieres unir
la tabla "test" y la tabla "point"
y viendo que tienes el id del point en la tabla test
y el campo id de la tabla point. la consulta quedaria asi

Código PHP:
$query "select * from test,point where test.point = point.id"
y con un mysql_fetch_array()
tambien puedes acceder a los campos usando el nombre del campo de la tabla

Código PHP:
$row['incl1']
$row['incl2']
$row['iduser'

Última edición por blakmetall; 08/09/2011 a las 13:01 Razón: .
  #4 (permalink)  
Antiguo 08/09/2011, 13:03
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: relacionar tablas

Seré estupido... tantas horas con php creo que me esta volviendo tonto
  #5 (permalink)  
Antiguo 08/09/2011, 13:04
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: relacionar tablas

Cita:
Iniciado por blakmetall Ver Mensaje
Otro metodo de relacionar tablas es el siguiente segun tu ejemplo que quieres unir
la tabla "test" y la tabla "point"
y viendo que tienes el id del point en la tabla test
y el campo id de la tabla point. la consulta quedaria asi

Código PHP:
$query "select * from test,point where test.point = point.id"
y con un mysql_fetch_array()
tambien puedes acceder a los campos usando el nombre del campo de la tabla

Código PHP:
$row['incl1']
$row['incl2']
$row['iduser'
Muchas gracias no sabia esa forma de relacionar, voy a hacer unos ejercicios con esa sintexis a ver que tal me va! gracias!!!

Etiquetas: mysql, relacionar, sql, tabla, tablas
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 17:03.