PHP - Como consultar datos de dos tablas en mysql?

 
Vista:
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como consultar datos de dos tablas en mysql?

Publicado por fanny (10 intervenciones) el 10/11/2016 05:44:49
Tengo una tabla en mysql llamada "regis" con los siguientes campos (id,cliente ,Nombre, Direccion, Telefono, Id_trabajo, Cantidad, Fecha_ingreso, Anticipo), en mi campo (Id_trabajo) va el value de mi option selected,ya que coloque un campo con varias opciones y les coloque (1,2,3,etc)dependiendo cual escogan.
1
2
3
4
5
6
7
8
9
10
<div class="col-md-5">
      <select class="form-control"  name="txt2">
 
        <option selected value="0"> Elige una opcion </option>
        <optgroup label="Porcelana">
        <option value="1">Corona metal porcelana</option>
        <option value="2">Corona veneer</option>
        <option value="3">Corona meriland</option>
        <option value="4">Montado de porcelana</option>
        </optgroup>

Tengo otra tabla llamada (trabajos) con los campos (id, codigo, nombre,costo)que muestro en mi pagina,que funciona como una lista de precios,el usuario puede modificar los costos,eliminar u agregar un nuevo producto

Ahora lo que quiero hacer, es que al buscar un determinado cliente por nombre,me aparezca la siguiente información desplegada,
(Nombre, Direccion, telefono, fecha de ingreso, Nombre del trabajo,Costo, Cantidad, Total,Anticipo,Resta), pero mis campos de Costo, Total y Resta,dependen de campos de mi tabla regis y mi tabla trabajos.
Por ejemplo si en la tabla (regis) el campo Id_trabajo=1 , y en mi tabla (trabajos) el campo id=1 , le corresponde un nombre de trabajo y un costo

Hice la siguiente consulta y me arroja esto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<? include("config.php");
	//Instaciamos la clase de base de datos
 	$db = new Clasedb();
 	//Llamamos a la funcion para conectar a la base de datos
 	$db->MySQL();
 	//Consultamos la tabla regis
 	$consulta = $db->consulta("SELECT * FROM regis AS R JOIN trabajos AS T ON R.id_trabajo = T.id WHERE R.Nombre LIKE '%$buscar%'");
	?>
 
 <form class="form-horizontal" name="form1" method="post" action="consultar.php">
	<br>
	<br>
	<br>
	<br>
	<br>
 
	<fieldset class="scheduler-border">
		<legend class="scheduler-border">CONSULTA DE REGISTROS</legend>
			<div class="form-group">
				<div class="col-md-5">
					<input  class="form-control" type="text" name="buscar" placeholder="nombre del cliente">
				</div>
			</div>
			<button class="btn btn-primary">BUSCAR</button>
	</fieldset>
 
 
 
	<?php
 
	if($_POST['buscar'])
	{
		?>
		<br>
 
	<div class="table-responsive">
	<div class="container" id="container1" style="padding-top: 1em;">
    	<table class="table table-hover  table-condensed">
      		<thead>
				<tr>
 
					<th class="col-sm-1">Nombre</th>
					<th class="col-sm-1">Direcc</th>
					<th class="col-sm-1">Tel</th>
					<th class="col-sm-1">Id_trabajo</th>
					<th class="col-sm-1">Cantidad</th>
					<th class="col-sm-1">Fecha de ingreso</th>
					<th class="col-sm-1">Id_trabajo</th>
					<th class="col-sm-1">Codigo</th>
					<th class="col-sm-1">Nombre</th>
					<th class="col-sm-1">Costo</th>
					<th class="col-sm-1">Editar</th>
					<th class="col-sm-1">Eliminar</th>
				</tr>
			</thead>
	<?php
	while($resultado = $db->obtenerfilas($consulta))
 
		{?>
	  			<tr>
					<td class="Nombre"><?=$resultado['Nombre']?></td>
					<td class="Direccion"><?=$resultado['Direccion']?></td>
					<td class="Telefonos"><?=$resultado['Telefono']?></td>
					<td class="Fecha_ingreso"><?=$resultado['Id_trabajo']?></td>
					<td class="Tipo_trabajo"><?=$resultado['Cantidad']?></td>
					<td class="Costo_uni"><?=$resultado['Fecha_ingreso']?></td>
					<td class="Cantidad"><?=$resultado['id']?></td>
					<td clas="Total"><?=$resultado['codigo']?></td>
					<td class="Anticipo"><?=$resultado['nombre']?></td>
					<td clas="Resta"><?=$resultado['costo']?></td>
 
					<td class="Editar"><button type="button" class="btn btn-info" data-toggle="modal" data-target="#dataUpdate" data-id="<?php echo $row['id']?>"><i class='glyphicon glyphicon-edit'></i></button></td>
 
 
          			<td class="Eliminar"><button type="button" class="btn btn-danger" data-toggle="modal" data-target="#dataDelete" data-id="<?php echo $row['id']?>"><i class='glyphicon glyphicon-trash'></i></button></td>
 
				</tr>
 	<? } ?>  <!--Cierra el while-->
		</table>
	</div> <!--Cierra el container-->
	</div>
		<br>
		<?php
 
		}echo "";
 
		?>
</form>
</div>

1

pero como se puede ver, esa consulta me muestra todos los campos de las dos tablas, dependiendo el id, pero no quiero que me salgan los campos: "id_trabajo" y "codigo" de la tabla trabajos, ya que con el Id_trabajo basta para que no aparezca dos veces,como le puedo hacer? o que me sugieren?
y ya que muestro esos datos, como los guardo en una tabla? porque lo que hago solamente me muestra la info, pero quiero guardarla, para posteriormente editarla por si el cliente hace un nuevo anticipo y que se actualize en la BD,
ademas de que me hace falta sacar el "Total" del trabajo y el "Resta
Ojala me puedan orientar gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como consultar datos de dos tablas en mysql?

Publicado por Alejandro (840 intervenciones) el 10/11/2016 15:59:00
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Si no quieres que aparescan solo elimina las celdas

1
2
3
4
5
<th class="col-sm-1">Id_trabajo</th>
<th class="col-sm-1">Codigo</th>
 
<td class="Cantidad"><?=$resultado['id']?></td>
<td clas="Total"><?=$resultado['codigo']?></td>

Si no quieres que la consulta las regrese espesifica cada campo que quieres, hacerlo asi es buena practica de programacion, por flojera se pone *
1
"SELECT R.Nombre, R.Direccion, R..., T.nombre, T.costo FROM regis AS R JOIN trabajos AS T ON R.id_trabajo = T.id WHERE R.Nombre LIKE '%$buscar%'"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como consultar datos de dos tablas en mysql?

Publicado por fanny (10 intervenciones) el 10/11/2016 18:17:11
Excelente me funciono, muchas gracias
una pregunta dentro de esa consulta puedo multiplicar los campos para obtener un Total?
con los campos R.cantidad * T.costo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 13 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como consultar datos de dos tablas en mysql?

Publicado por Raul (8 intervenciones) el 10/11/2016 19:51:07
en tu select vas a poner algo asi
1
SELECT R.cantidad*T.costo from regis ..................(y lo que le sigue)
con eso estas multiplicando ambos campos de las tablas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como consultar datos de dos tablas en mysql?

Publicado por Alejandro (840 intervenciones) el 10/11/2016 22:39:17
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
1
2
3
"SELECT R.Nombre, R.Direccion, R..., T.nombre, T.costo, R.Cantidad*T.Costo AS total FROM regis AS R JOIN trabajos AS T ON R.id_trabajo = T.id WHERE R.Nombre LIKE '%$buscar%'"
...
$resultado['total'];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como consultar datos de dos tablas en mysql?

Publicado por fanny (10 intervenciones) el 11/11/2016 18:17:53
quise sacar la resta haciendo
1
2
"SELECT R.Nombre, R.Direccion, R.Telefono, R.Id_trabajo, R.Cantidad, R.Fecha_ingreso, R.Anticipo, T.nombre, T.costo , R.Cantidad*T.Costo AS Total, Total-R.Anticipo AS Resta   FROM regis AS R JOIN trabajos AS T ON R.id_trabajo = T.id WHERE R.Nombre LIKE '%$buscar%'");
	?>

pero me sale este error
MySQL Error: Unknown column 'Total' in 'field list'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como consultar datos de dos tablas en mysql?

Publicado por Alejandro (840 intervenciones) el 12/11/2016 00:00:49
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
hazlo completo
1
"SELECT R.Nombre, R.Direccion, R.Telefono, R.Id_trabajo, R.Cantidad, R.Fecha_ingreso, R.Anticipo, T.nombre, T.costo , R.Cantidad*T.Costo AS Total, R.Cantidad*T.Costo-R.Anticipo AS Resta   FROM regis AS R JOIN trabajos AS T ON R.id_trabajo = T.id WHERE R.Nombre LIKE '%$buscar%'");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar