PHP - Consultas php mysql

 
Vista:
Imágen de perfil de miguel
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por miguel (71 intervenciones) el 17/01/2013 08:42:35
hola a todos bueno soy nuevo en PHP estoy en la universidad y la verdad me interesa mucho y espero que me puedan ayudar con mis interrogantes y de antemano muchas gracias.

estoy realizando un sistema de pedidos para un restaurante en el cual tengo una tabla pedidos en donde guardo la información de los pedidos, de esta tabla me sale una que se llama detalle pedidos en la cual tengo la necesidad de hacer 2 consultas :

1° la primera es para que el detalle_pedido guarde el id de la tabla pedidos que es recogido por el GET

1
2
3
$codped = $_GET['id'];
$sql = "SELECT * FROM detalle_pedidos  WHERE pedidos_id=$codped ORDER BY cant,comentario"
$res = mysql_query($sql)


2° la segunda es para jalar datos de otra tabla para esto utilizo el NNER JOIN

1
2
3
4
$sql  = "SELECT * FROM detalle_pedidos det
			          INNER JOIN carta ca
				  ON det.carta_id = ca.idcarta";
$res = mysql_query($sql);


Bueno el problema que tengo es que si pongo las dos consultas solo una de ellas se realiza desactivando esta a la otra; si las pongo una a la vez si se llegan a realizar es decir si me corre el código pero solo si las pongo por separado una a la vez, o bien una o bien la otra.

---juntas las pongo de esta forma:

1
2
3
4
5
6
7
8
9
10
11
<?php
 
$codped = $_GET['id'];
 
$sql = "SELECT * FROM detalle_pedidos  WHERE pedidos_id=$codped ORDER BY cant,comentario"
$sql  = "SELECT * FROM detalle_pedidos det
			    INNER JOIN carta ca
				ON det.carta_id = ca.idcarta";
$res = mysql_query($sql);
$res = mysql_query($sql);
?>


A ver amigos expertos lo que quisiera es que me ayuden a como colocar estas dos consultas en una sola de tal forma que me corra el programa jalando los datos de la otra tabla y guardando el id de la tabla pedidos.

aquí les pongo el resto del código: ayúdenme porfa.......

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
<?php
$codped = $_GET['id'];
 
require("conexion.php");
$sql = "SELECT * FROM detalle_pedidos  WHERE pedidos_id=$codped ORDER BY cant,comentario"
$sql  = "SELECT * FROM detalle_pedidos det
			    INNER JOIN carta ca
				ON det.carta_id = ca.idcarta";
$res = mysql_query($sql);
$res = mysql_query($sql);
?>
<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8" />
	<title>Detalle Pedidos</title>
</head>
<body>
<h2 align="center">Detalle Pedidos</h2>
<table width="800px" align="center" border="1">
	<tr>
		<th>Id</th>
		<th>Cant.</th>
		<th>Nombre de Plato</th>
		<th>Comentario</th>
		<th>Estado</th>
		<th>Acción</th>
	</tr>
<?php while ($fila = mysql_fetch_assoc($res)) : ?>
 
		  		<tr>
					<td><?php echo $fila['id'] ?></td>
					<td><?php echo $fila['cant'] ?></td>
					<td><?php echo utf8_encode($fila['descripcion'])?></td>
					<td><?php echo utf8_encode($fila['comentario'])?></td>
					<td><?php echo $fila['estado'] ?></td>
					<td>&nbsp;</td>
				</tr>
	<?php endwhile?>
 
</table>
<a href="nuevodetallepedido.php?id=<?php echo $codped?>">Nuevo Detalle</a>
<?php
mysql_close();
?>
</body>
</html>
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por xve (6935 intervenciones) el 17/01/2013 09:05:35
Hola Miguel, simplemente tienes que cambiar el nombre de la variable al ejecutar la query.

$res1 = mysql_query($sql);
$res2 = mysql_query($sql);

Coméntanos, ok?
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 miguel
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por miguel (71 intervenciones) el 17/01/2013 17:06:13
gracias por responder amigo XVE.

lo que tu me dices ya lo había hecho y resulta que si lo pongo en este orden como se ve a continuación:

$sql = "SELECT * FROM detalle_pedidos det
INNER JOIN carta ca
ON det.carta_id = ca.idcarta";

$sql = "SELECT * FROM detalle_pedidos WHERE pedidos_id=$codped ORDER BY cant,comentario";

$res1= mysql_query($sql);

$res2 = mysql_query($sql);


en el casillero donde corresponde la descripción en detalle_pedidos no se puede ver la descripcion y me sale la siguiente noticia:
Notice: Undefined index: descripcion in E:\xampp\htdocs\practica\detalle_pedidos.php on line 35



y si lo pongo en este orden:

$sql = "SELECT * FROM detalle_pedidos WHERE pedidos_id=$codped ORDER BY cant,comentario";

$sql = "SELECT * FROM detalle_pedidos det
INNER JOIN carta ca
ON det.carta_id = ca.idcarta";

$res1= mysql_query($sql);
$res2 = mysql_query($sql);

en este orden si me sale la descripción en detalle_pedidos pero se pierde el ID de la tabla pedidos; es decir todos los detalles que existen en la tabla detalle_pedidos se pueden ver desde cualquier pedido y no debe ser así ya que cada pedido debe tener sus propios detalles.

tan bien cambie esta parte no se si es lo correcto le puse ($res1) y tanbien probé con ($res2) pero daba igual.


<?php while ($fila = mysql_fetch_assoc($res1)) : ?>



gracias por el interés. saludos
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por xve (6935 intervenciones) el 17/01/2013 20:38:28
Pero miguel, no utilices el mismo nombre de variable, ya que la estas sobrescribiendo...
1
2
3
4
5
6
7
8
$sql1 = "SELECT * FROM detalle_pedidos det
 INNER JOIN carta ca
 ON det.carta_id = ca.idcarta";
 
$sql2 = "SELECT * FROM detalle_pedidos WHERE pedidos_id=$codped ORDER BY cant,comentario";
 
$res1= mysql_query($sql1);
$res2 = mysql_query($sql2);
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 miguel
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por miguel (71 intervenciones) el 17/01/2013 23:13:00
ya lo hice tanbien de esta forma al parecer es ta todo bien hasta ahí:

$sql1 = "SELECT * FROM detalle_pedidos WHERE pedidos_id=$codped ORDER BY cant,comentario";
$sql2 = "SELECT * FROM detalle_pedidos det
INNER JOIN carta ca
ON det.carta_id = ca.idcarta";


$res1= mysql_query($sql1);
$res2 = mysql_query($sql2);

pero en esta parte como lo haría:

<?php while ($fila = mysql_fetch_assoc($res1)) : ?>
<?php while ($fila1 = mysql_fetch_assoc($res2)) : ?>
<tr>
<td><?php echo $fila['id'] ?></td>
<td><?php echo $fila['cant'] ?></td>
<td><?php echo utf8_encode($fila1['descripcion'])?></td>
<td><?php echo utf8_encode($fila['comentario'])?></td>
<td><?php echo $fila['estado'] ?></td>
<td>&nbsp;</td>
</tr>
<?php endwhile?>
<?php endwhile?>

estuve probando y guarda todo bien en la tabla pero la variable descripción en detalle_pedidos se comparte para todos los pedidos y así no debe ser cada pedidos debe tener su propio detalle, es decir la variable descripción necesita del ($res1)para que se mantenga con el ID de pedidos y tanbien necesita el ($res2) para que busque en la otra tabla Carta don de se encuentran la descripción de los platos; de forma seria en este caso .
que me recomienda usted.
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por xve (6935 intervenciones) el 18/01/2013 07:09:52
Hola Miguel, creo que te has liado... ahora mismo tienes un bucle dentro de otro bucle,por lo que se te repite siempre como comentas.
No se como tienes las tablas, y tampoco se exactamente que resultado quieres tener... es muy difícil poder ayudarte, pero yo buscaría la manera de vincular dichas tablas.

Si nos muestras el contenido de las tablas, y el resultado que quieres tener, intentare ayudarte.
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 miguel
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por miguel (71 intervenciones) el 18/01/2013 16:30:44
hola buen día:

bueno como te estaba contando tengo una tabla "pedidos" de la cual cada pedido que ingrese debe tener un "detalle_pedido" que tanbien es otra tabla; entonces en la tabla detalle_pedidos utilizo la siguiente consulta

$sql1 = "SELECT * FROM detalle_pedidos det
INNER JOIN carta ca
ON det.carta_id = ca.idcarta";

$res1 = mysql_query($sql1);

hago esto para obtener datos de otra tabla llamada "carta" donde guardo la descripción de los platos

hasta aquí todo corre bien ahora ahora atraves del Get :

$codped = $_GET['id']

jalo el ID de la tabla "Pedidos" a la tabla "detalle_pedidos" para que de esta forma el "detalle_pedido" este ligado por medio del ID al pedido seleccionado por el usuario; cumpliendo con esto cada pedido ingresado en la tabla "pedidos" deberá contar con su propio detalle de pedidos; es decir el detalle_pedido deberá ser único para el pedido seleccionado. para lograr esto utilizo la siguiente consulta:

$sql2 = "SELECT * FROM detalle_pedidos WHERE pedidos_id=$codped ORDER BY cant,comentario";

$res2= mysql_query($sql2);

El problema surge cuando pongo las dos consultas en juntas en "detalle_pedidos" ya que resultan una serie de errores.Cabe resaltar que colocando una consulta ala vez el, el código funciona correctamente es decir colocando la consulta solamente con el INNER JOIN el código va bien , por otro lado colocando la consulta solamente para el GET el programa se ejecuta correctamente.

¿como encontrar la forma para colocar las dos consultas sin que me genere conflictos?

lo que quiero lograr es:

1.-poner estas dos consultas para que el detalle_pedidos no se desligue del ID del pedido seleccionado en la tabla pedidos. de esta forma al hacer la consulta del detalle en la tabla pedidos solo me muestre los detalles correspondiente a este pedido y no los detalles de todos los pedidos. y tanbien para jalar el campo descripción de la tabla "carta" donde me describe el nombre del plato.

¿cual seria la mejor forma de colar estas dos consultas sin que me genere errores ya que la variable descripción necesita de estas dos consultas para lograr su función correcta?

¿como seria el bucle para esta parte donde se imprimen los contenidos de las variables?

<?php while ($fila = mysql_fetch_assoc($res)) : ?>

<tr>
<td><?php echo $fila['id'] ?></td>
<td><?php echo $fila['cant'] ?></td>

<td><?php echo utf8_encode($fila['descripcion'])?></td> // variable q muestra el contenido del campo descripción de la tabla "CARTA" en la base de datos ,ademas de jalar el código del pedido seleccionado en la tabla pedidos.

<td><?php echo utf8_encode($fila['comentario'])?></td>
<td><?php echo $fila['estado'] ?></td>
<td>&nbsp;</td>
</tr>
<?php endwhile?>


Aquí te muestro mis tablas :

TABLA PEDIDOS:
Pedidos

ID....Mesa.....Mozo.......Cliente.............Fec.Ped.......Estado.......Detalle...........................Acción

1...... 01........Juan......Carlos C......... 2011-12-05.........A............Detalle...Modificar/eliminar
2...... 02........Paco.....Susan B......... 2012-15-03.........A ...........Detalle...Modificar/eliminar

Ingresar nuevo pedido

en el campo detalle se encuentra el enlace para la tabla "DetallePedidos"


TABLA DETALLE_PEDIDOS


Detalle Pedidos

ID ........Cant........Descripción..............Comentario..........Estado................. Acción
1 ......... 5............. tallarines.................. Sin sal................pendiente...........Modificar /Eliminar
2 .......... 3............. Estofados ............... Sin arroz .............atendido........... Modificar /Eliminar


Ingresar nuevo detalle

-El campo descripción jala los datos de la tabla carta en mi Base de Datos
-Este detalle debe de ser único para cada pedidos seleccionado en la tabla pedidos
- El ultimo error que tuve fue que el campo "descripción" en Detalle_Pedidos arroja los mismos datos para los dos pedidos .

no sabia como mostrarte las tablas espero lo entiendas; disculpa la molestia amigo XVE y se agradece tu interés .
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 miguel
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Consultas php mysql

Publicado por miguel (71 intervenciones) el 19/01/2013 04:41:46
GRACIAS por la atención amigo XVE e logrado corregir mi problema tenias razón me complique por las puras . es bueno saber que hay respaldo en este camino que e decidido continuar . cualquier duda o interrogante que tenga no dudare en consultar.
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

Consultas php mysql

Publicado por hola (4 intervenciones) el 11/11/2014 12:21:04
Hola me puedes ayudar enviandome tu codigo corregido?
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