Foros del Web » Programando para Internet » PHP »

ayuda para mostrar datos

Estas en el tema de ayuda para mostrar datos en el foro de PHP en Foros del Web. $sql3="SELECT * FROM room_selected, reservation, room WHERE reservation.paid =2 AND room_selected.reservation_id = reservation.id AND room_selected.room_id = room.id"; $result3=mysql_query($sql3,$conexion) or die( mysql_error() ); while ($fila3=mysql_fetch_array($result3)){ $idroom=$fila3['reservation_id']; ...
  #1 (permalink)  
Antiguo 08/11/2008, 07:19
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Pregunta ayuda para mostrar datos

$sql3="SELECT *
FROM room_selected, reservation, room
WHERE reservation.paid =2
AND room_selected.reservation_id = reservation.id
AND room_selected.room_id = room.id";
$result3=mysql_query($sql3,$conexion) or die( mysql_error() );
while ($fila3=mysql_fetch_array($result3)){
$idroom=$fila3['reservation_id'];
echo"$idroom","<br>";
}

Hola tengo estes codigo que me consulta exactamente los campos que quiero, solo que cuando dezpliego con while, me cuadriplica la consulta , que tengo que hacer para que solo me muestre solo una vez los campo que quiero consultar.

gracias..
  #2 (permalink)  
Antiguo 08/11/2008, 07:32
 
Fecha de Ingreso: noviembre-2008
Mensajes: 14
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: ayuda para mostrar datos

si imprimes este valor: mysql_fetch_array($result3) que te sale? es decir, eso que vale?
  #3 (permalink)  
Antiguo 08/11/2008, 07:35
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: ayuda para mostrar datos

El resultador deberia de ser

4
5
8
10



Y me sale

4
5
8
10
4
8
10
4
5
8
10
4
5
8
10

como lo resolvemos?


ya probe el codigo sql directamente y me funciona bien ... solo que al mostrar los campos en PHP me esta cuadriplicando el mostrar los campos quiero que me muestre los cuatro registros pero solo una vez.

gracias..

Última edición por RicardoU; 08/11/2008 a las 07:38 Razón: noticias
  #4 (permalink)  
Antiguo 08/11/2008, 07:38
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: ayuda para mostrar datos

Hola

el problema esta en tu consulta, por que en esta linea;

while ($fila3=mysql_fetch_array($result3)){

Le dices a PHP que mientras haya resultados de $result3 realize el bucle.

Un saludo
  #5 (permalink)  
Antiguo 08/11/2008, 07:42
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda para mostrar datos

Pero solo tengo 4 registros, por que me muestra 16...

como lo resuelvo?
  #6 (permalink)  
Antiguo 08/11/2008, 07:46
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: ayuda para mostrar datos

Intentalo en el foro de MySQL, a ver si alli te solucionan lo de tu consulta a la BBDD.

Un saludo
  #7 (permalink)  
Antiguo 08/11/2008, 07:54
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda para mostrar datos

no gracias te repito que la consulta en mysql me muestra solo los cuatro registro .......aqui no esta el error, ya lo super comprobe.
  #8 (permalink)  
Antiguo 08/11/2008, 08:32
 
Fecha de Ingreso: noviembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: ayuda para mostrar datos

Es el único código de ese script?. Lo digo, porque puede que esté dentro de otro bucle.

No veo ningún error dentro de tu código.
  #9 (permalink)  
Antiguo 08/11/2008, 09:20
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: ayuda para mostrar datos

MIRE ESTE CODIGO:

mysql_select_db($database_colegio, $colegio);
$query_trabajo_detalle = sprintf("SELECT * FROM trabajos WHERE id = 1", $colname_trabajo_detalle);
$trabajo_detalle = mysql_query($query_trabajo_detalle, $colegio) or die(mysql_error());
$row_trabajo_detalle = mysql_fetch_assoc($trabajo_detalle);
$totalRows_trabajo_detalle = mysql_num_rows($trabajo_detalle);


ESTE ES EL LLAMADO, ahora cuando quieras poner los campos lo haces de la siguiente forma y listo ya solo tienes que repetir eso le pones el while for o lo que sea.

<?php echo $row_trabajo_detalle['titulo']; ?>

espero HABERTE AYUDADO FUE UN GUSTO miguec04
  #10 (permalink)  
Antiguo 08/11/2008, 12:37
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda para mostrar datos

Y cómo así estás seguro de que la consulta devuelve sólo los 4 registros? En tus tablas tienes campos con el mismo nombre?

P.D. Algo me dice que el rror puede estar en AND room_selected.room_id = room.id";

Saludos,
  #11 (permalink)  
Antiguo 08/11/2008, 12:39
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: ayuda para mostrar datos

agradezco tu comentario , pero esto no lo resuelve , por que solo me muestra el ultimo regitros y el total de los registro
necesito una vez que saco la consulta de SQL mostror todos los registros que cumplen con el parametro pero solo una vez, actualmente me lo multiplica por cuatro.

gracias...
  #12 (permalink)  
Antiguo 08/11/2008, 13:03
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: ayuda para mostrar datos

Cita:
Código:
SELECT *
FROM room_selected, reservation, room
WHERE reservation.paid =2
AND room_selected.reservation_id = reservation.id
AND room_selected.room_id = room.id
Juraría que estás haciendo un producto cartesiano, en lugar de una consulta múltiple, que supongo es lo que deseas. Has probado con INNER JOIN? Algo al estilo de:

Código:
SELECT *
FROM (room_selected INNER JOIN reservation 
ON reservation.paid =2 AND room_selected.reservation_id = reservation.id)
INNER JOIN room ON room_selected.room_id = room.id
(o similar, que no he comprobado si la sintaxis es correcta).
  #13 (permalink)  
Antiguo 08/11/2008, 17:09
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 8 meses
Puntos: 15
Respuesta: ayuda para mostrar datos

SI LO UNICO QUE TIENES QUE HACER ES UN FOR QUE SOLO ME REPITA 4 CAMPOS EJEMPLO:

<?php for($a=1;$a<=4;a++) { ?>


<?php echo $row_trabajo_detalle['titulo']; ?>

<?php } ?>

y listo fin del problema. el te va a botar los 4 campos que tienes en la base de datos y si tienes mas pues te los bota segun el orden que le digas en el llamado.


mysql_select_db($database_colegio, $colegio);
$query_trabajo_detalle = sprintf("SELECT * FROM trabajos ORDER BY id DESC);
$trabajo_detalle = mysql_query($query_trabajo_detalle, $colegio) or die(mysql_error());
$row_trabajo_detalle = mysql_fetch_assoc($trabajo_detalle);
$totalRows_trabajo_detalle = mysql_num_rows($trabajo_detalle);

por ejemplo podria hacer asi el llamado. espero haberte ayudado. de todas formas mi correo es [email protected] bye
  #14 (permalink)  
Antiguo 08/11/2008, 17:30
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda para mostrar datos

Bueno no puede ser posible con un for por que los registros dependen de los registros generados en la base de datos.

saludos.......
  #15 (permalink)  
Antiguo 08/11/2008, 20:12
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda para mostrar datos

Este es mi codigo

$sql3="SELECT *
FROM room_selected, reservation, room
WHERE reservation.paid =2
AND room_selected.reservation_id = reservation.id
AND room_selected.room_id = room.id";
$result3=mysql_query($sql3,$conexion) or die( mysql_error() );
while ($fila3=mysql_fetch_array($result3)){
$idroom=$fila3['reservation_id'];
echo"$idroom","<br>";
}

solo necesito mostrar 1 sola vez todos los registros , me los esta mostrando cuatro.

ya me habia corrido antiormente pero por equivocacion borre el codigo y estoy tratando de arreglarlo pero , no encuentro el error.

me puedes ayudar
  #16 (permalink)  
Antiguo 08/11/2008, 21:27
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda para mostrar datos

No estoy seguro, pero si en tu consulta pones:

Código sql:
Ver original
  1. SELECT *
  2. FROM room_selected, reservation, room
  3. WHERE reservation.paid =2
  4. AND room_selected.reservation_id = reservation.id
  5. AND room_selected.room_id = room.id
  6. GROUP BY room.id
?

Es difícil dar con el problema, pues no sabemos como es que funcionan y se relacionan tus tablas, ni qué es exactamente lo que deseas obtener.

Saludos,
  #17 (permalink)  
Antiguo 09/11/2008, 04:13
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: ayuda para mostrar datos

Hola

pero lo que si que esta claro es que WHILE no le multiplica por cuatro, como el dice su consulta a la bbdd, solo hace su funcion, que es sacar datos mientras los haya.

Mas arriba Deschamps te propuso usar INNER JOIN, lo probaste?
Lo intestaste si mas no?, porque sigo pensando que el error es la consulta, pues el bucle esta bien.

Un saludo
  #18 (permalink)  
Antiguo 09/11/2008, 08:43
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda para mostrar datos

gracias, bien ya veo los campos correctamente.....ahora necesito mostrarlos dentro de otro while en donde se tiene que mostrar la consulta , el codigo esta asi.

$sql4="SELECT *
FROM (room_selected INNER JOIN reservation
ON reservation.paid =2 AND room_selected.reservation_id = reservation.id)
INNER JOIN room ON room_selected.room_id = room.id";
$result4=mysql_query($sql4,$conexion) or die( mysql_error() );
while($fila4=mysql_fetch_array($result4)){
$room_number=$fila4['room_number'];

}
include '../include/conexion.php';
$db=mysql_select_db($base,$conexion);

$sql2="SELECT *FROM reservation where paid =1 ";
$result=mysql_query($sql2,$conexion);
while ($fila=mysql_fetch_array($result)){

echo"<td align=\"left\" bgcolor=#CCCCCC> <font size=2 color= \"#003366\">", $fila['arrive_date'],"</td>";
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $fila['num_nights'],"</td>";
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $room_number,"</td>";

}

Lo que sucede es que me muestra solo el ultimo registro dentro del segundo while.

como le hago
  #19 (permalink)  
Antiguo 09/11/2008, 13:02
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: ayuda para mostrar datos

Hola

El primer error que tuviste no fue el WHILE, fue la consulta.

Creo que en este caso es lo mismo, si te pones a mirar le estas diciendo que mientras haya resultados de $result te cree un array que se llama $fila, el comportamiento de WHILE es siempre el mismo, y lo tienes bien hecho, a si que seguramente sera la consulta.

Un saludo
  #20 (permalink)  
Antiguo 09/11/2008, 20:58
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: ayuda para mostrar datos

Bien mira ya me muestra los campos dentro con echo lo acabo de comprobar ya me esta funcionando.

tengo el codigo con el que saco los campos con un include y luego jalo la varible a otra tabla dentro de otro while.

necesito mostrar los campos en orden dentro de la otra tabla , como lo hago este es el codigo

<?

include ('../include/conexion.php');
$db=mysql_select_db($base,$conexion);

$sql2="SELECT *FROM reservation where paid =2 ";
$result=mysql_query($sql2,$conexion);


while ($fila=mysql_fetch_array($result)){
$idreservation=$fila['id'];
echo"<tr >";
echo"<td bgcolor=#CCCCCC>","</td>";
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", "<a href='reservation_edit.php?id=".$fila[id]."'>",$fila['res_code'] ,"</a>","</td>";


echo"<td align=\"left\" bgcolor=#CCCCCC> <font size=2 color= \"#003366\">", $fila['arrive_date'],"</td>";
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $fila['num_nights'],"</td>";
include ('../include/room.php');
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $room_number,"</td>"; //esta variable la traigo desde include solo que lamentablmente me muestra solo el ultimo registro y me en todo los campo a mostrar.

Necesito que me muestre todos los campos en ese orden.


echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $fila['customer_id'],"</td>";
echo "<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\"><a href='../include/DeleteReservation.php?idreservation=".$fila[id]."' onclick=\"return confirm('¿Do you want to delete this reservation?')\">","Delete reservation","</a></td>";


echo"</tr>\n";
}


mysql_free_result($result);

mysql_close();
?>
  #21 (permalink)  
Antiguo 09/11/2008, 22:29
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: ayuda para mostrar datos

Estamos hablando de otros datos? O sea por que llamas con include a ese otro archivo? (room.php)

Que tiene que ver con los otros datos que quieres mostrar?? No estan en la base de datos?? De ser asi, solo tendrias que hacer una consulta SQL y con el mysql_num_rows, y el mysql_fetch_array puedes ir manejando cada uno de los datos individualmete e ir mostrandolos en el lugar que quieras de la tabla.

Explica un poco como es eso de tus datos para ver si te puedo ayudar acomodando tus datos en otra tabla.

Saludos!
  #22 (permalink)  
Antiguo 09/11/2008, 23:35
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Pregunta Respuesta: ayuda para mostrar datos

Mira te lo detallo un poco mas........


Como podras mirar en el codigo anterior , muestro unos campos ejemplo :$file['res_code'] y luego existe en una fila un campo solo con una variable$room_number esta ultima saco los campos del include room.php, mi problema es que no se como integrar este dato que viene de otra consulta para que me muestre los campos consecutivos dentro del while de reservations.

como lo hago?
  #23 (permalink)  
Antiguo 10/11/2008, 05:39
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: ayuda para mostrar datos

Un consejo, RicardoU: resulta complicado seguir tus mensajes, cuando leer el códgo que pones es una labor difícil. Yo al menos cierro automáticamente todos los threads del foro cuando veo un listado de código largo sin un puñetero tabulado o sin colorear. Seguro que hay mucha otra gente por aquí que hace lo mismo.

Por esa razón, si incluyeras todo el código que desees mostrar dentro de las etiquetas apropiadas (php, code, etc), aparecería coloreado y con una tipografía tipo courier, y de entrada te asegurarías que al menos alguna gente no cerrará tus preguntas sin siquiera leerlas.

Un saludo.
  #24 (permalink)  
Antiguo 10/11/2008, 07:06
(Desactivado)
 
Fecha de Ingreso: mayo-2007
Mensajes: 547
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: ayuda para mostrar datos

Bien mira ya me muestra los campos dentro con echo lo acabo de comprobar ya me esta funcionando.

tengo el codigo con el que saco los campos con un include y luego jalo la varible a otra tabla dentro de otro while.

necesito mostrar los campos en orden dentro de la otra tabla , como lo hago este es el codigo

<?

include ('../include/conexion.php');
$db=mysql_select_db($base,$conexion);

$sql2="SELECT *FROM reservation where paid =2 ";
$result=mysql_query($sql2,$conexion);



while ($fila=mysql_fetch_array($result)){
$idreservation=$fila['id'];
echo"<tr >";
echo"<td bgcolor=#CCCCCC>","</td>";
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", "<a href='reservation_edit.php?id=".$fila[id]."'>",$fila['res_code'] ,"</a>","</td>";


echo"<td align=\"left\" bgcolor=#CCCCCC> <font size=2 color= \"#003366\">", $fila['arrive_date'],"</td>";
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $fila['num_nights'],"</td>";
include ('../include/room.php');
echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $room_number,"</td>"; //esta variable la traigo desde include solo que lamentablmente me muestra solo el ultimo registro y me en todo los campo a mostrar.

Necesito que me muestre todos los campos en ese orden.


echo"<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\">", $fila['customer_id'],"</td>";
echo "<td align=\"left\" bgcolor=#CCCCCC > <font size=2 color= \"#003366\"><a href='../include/DeleteReservation.php?idreservation=".$fila[id]."' onclick=\"return confirm('¿Do you want to delete this reservation?')\">","Delete reservation","</a></td>";


echo"</tr>\n";
}


mysql_free_result($result);

mysql_close();
?>
  #25 (permalink)  
Antiguo 10/11/2008, 07:31
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: ayuda para mostrar datos

Cita:
Iniciado por RicardoU Ver Mensaje
Mira te lo detallo un poco mas........


Como podras mirar en el codigo anterior , muestro unos campos ejemplo :$file['res_code'] y luego existe en una fila un campo solo con una variable$room_number esta ultima saco los campos del include room.php, mi problema es que no se como integrar este dato que viene de otra consulta para que me muestre los campos consecutivos dentro del while de reservations.

como lo hago?
Al parecer creo que esta facil lo que necesitas, podrias decirnos cual es la informacin que necesitas de room.php?? Que datos tiene $room_number, mejor si nos dices que consulta es.

Saludos!
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:18.