Foros del Web » Programando para Internet » PHP »

Conultar varias tablas php y mysql

Estas en el tema de Conultar varias tablas php y mysql en el foro de PHP en Foros del Web. Hola, tengo este código, pero no me funciona. Código PHP: $query  =  "SELECT schedules.id, schedules.employee_id, schedules.class, employees.name FROM schedules, employees WHERE schedules.employee_id = employees.id"  or die( "Error in the consult.."  .  mysqli_error ( $link )); $execute  =  mysqli_query ( $link ...
  #1 (permalink)  
Antiguo 06/07/2015, 11:36
 
Fecha de Ingreso: marzo-2010
Ubicación: México
Mensajes: 19
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Conultar varias tablas php y mysql

Hola, tengo este código, pero no me funciona.

Código PHP:
$query "SELECT schedules.id, schedules.employee_id, schedules.class, employees.name FROM schedules, employees WHERE schedules.employee_id = employees.id" or die("Error in the consult.." mysqli_error($link));
$execute mysqli_query($link$query);
$rowsmysqli_num_rows($execute);
if (
$rows 0){
        while(
$row mysqli_fetch_array($execute )) {
               echo 
$row["schedules.id"];
           echo 
$row["schedules.class"];
           echo 
$row["employees.name"];
         }
}else{
    echo 
"No hay datos";

Me manda mensaje de:

Código PHP:
NoticeUndefined indexschedules.id in C:wampwwwtestemployees.php on line 152 
Lo que quiero hacer es una consulta que me muestre los datos de la union de 2 tablas,pero no estoy seguro si mi error esta en esto:

Código PHP:
$row["schedules.class"]; 
o esto
Código PHP:
"SELECT schedules.id, schedules.employee_id, schedules.class, employees.name FROM schedules, employees WHERE schedules.employee_id = employees.id" 
Porque cuando lo hago sin unir tablas funciona bien
  #2 (permalink)  
Antiguo 06/07/2015, 12:42
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Conultar varias tablas php y mysql

debes realizar un inner join
Código MySQL:
Ver original
  1. "SELECT datos1.*, datos2.* FROM datos1 INNER JOIN datos1.id=datos2.id WHERE loquesea"
claro imagino que tienes tu tabla relacionada por algun campo, el iner debes realizarlo por medio de los campos que esten relacionados, asi podras realizar una consulta a 2 tablas
  #3 (permalink)  
Antiguo 06/07/2015, 16:09
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: Conultar varias tablas php y mysql

Estás usando mal los índices; resulta que MySQL te devuelve solo el nombre de cada columna, sin el prefijo de la tabla; usa var_dump($row); para comprobarlo.

Código:
SELECT schedules.id, schedules.employee_id, schedules.class, employees.name FROM ...
Los índices serán: id, employee_id, class y name.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 07/07/2015, 04:00
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Conultar varias tablas php y mysql

Cita:
$query = "SELECT schedules.id, schedules.employee_id, schedules.class, employees.name FROM schedules, employees WHERE schedules.employee_id = employees.id" or die("Error in the consult.." . mysqli_error($link));
$execute = mysqli_query($link, $query);
$rows= mysqli_num_rows($execute);
if ($rows > 0){
while($row = mysqli_fetch_array($execute )) {
echo $row["schedules.id"];
echo $row["schedules.class"];
echo $row["employees.name"];
}
}else{
echo "No hay datos";
}
La sintaxis correcta si no me equivoco es :

Código PHP:
Ver original
  1. $query = "SELECT schedules.id, schedules.employee_id, schedules.class, employees.name FROM schedules, employees WHERE schedules.employee_id = employees.id" );
  2. $execute = mysqli_query($link, $query)or die("Error in the consult.." . mysqli_error($link);
  3. $rows = mysqli_fetch_assoc($execute );
  4. $num_rows= mysqli_num_rows($execute);
  5. if ($num_rows > 0){
  6.         while($row = mysqli_fetch_assoc($execute )) {
  7.                echo $row["schedules.id"];
  8.            echo $row["schedules.class"];
  9.            echo $row["employees.name"];
  10.          }
  11. }else{
  12.     echo "No hay datos";
  13. }

Espero haber podido ayudarte... tenias row como el que te decia cuantos registros habia, por eso te daba el error.... y lo puse un poco mas bonito... jjajaja
__________________
http://tutorialesdelweb.blogspot.com/TutorialesWeb(principiantes)
  #5 (permalink)  
Antiguo 07/07/2015, 04:02
 
Fecha de Ingreso: febrero-2013
Mensajes: 115
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Conultar varias tablas php y mysql

Ah y me di cuenta que estas usando mysql, no se porque pones mysqli, talvez ese tambien sea un error... nunca habia usado eso...
__________________
http://tutorialesdelweb.blogspot.com/TutorialesWeb(principiantes)
  #6 (permalink)  
Antiguo 10/07/2015, 09:22
 
Fecha de Ingreso: marzo-2010
Ubicación: México
Mensajes: 19
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Conultar varias tablas php y mysql

Gracias a todos por sus respuestas, había salido fuera y no había tenido chance de checar esto, pero efectivamente tenían razón lo que hice fue lo de usar los indices
id, employee_id, class y name sin el employees o schedules. Y si con el inner join también funciona

echo $row["id"];
echo $row["class"];
echo $row["name"];

Etiquetas: mysql, select, 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 20:51.