Foros del Web » Programando para Internet » PHP »

SI TENGO 1 SELECT D 2 TABLAS:como mostrar dato tabla 2 en un texfield, segun su row

Estas en el tema de SI TENGO 1 SELECT D 2 TABLAS:como mostrar dato tabla 2 en un texfield, segun su row en el foro de PHP en Foros del Web. hola a todos, tengo un select con una referencia a dos tablas, y kiero mostrar en texfields datos de una sola. como tendria que ser ...
  #1 (permalink)  
Antiguo 12/10/2006, 15:52
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
Desacuerdo SI TENGO 1 SELECT D 2 TABLAS:como mostrar dato tabla 2 en un texfield, segun su row

hola a todos, tengo un select con una referencia a dos tablas, y kiero mostrar en texfields datos de una sola. como tendria que ser la referencia del echo marcado mas abajo en negro para hacer ferencia a la fila (row) de la tabla usuario??

ahi esta mi select
Código PHP:
$result mysql_query("SELECT * FROM reserva_sala,usuario WHERE reserva.id_sala='$sala' AND reserva.id_bloque='$bloque' AND reserva.fecha='$date' AND reserva.rut=usuario.rut"$conexion);

if (
$row mysql_fetch_array($result)){
echo
"La Sala no se encuentra disponible, ya ha sido reservada por: <br> <br>";
?> 
aqui lo hice en html

Cita:
<input type="text" name="nombre" value="<?php echo $row[2];?>" >
en se echo como lo hago para indicar que la row es de la tabla usuario??

si lo hago asi <input type="text" name="nombre" value="<?php echo usuario.row[2];?>" > me sale este error Parse error: parse error, expecting `','' or `';'' in....

Última edición por gazuzax; 12/10/2006 a las 17:57
  #2 (permalink)  
Antiguo 12/10/2006, 15:55
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 22 años, 1 mes
Puntos: 0
Pues trayendo solo los campos que tu quieres en la consulta, ej

SELECT usuario.dato_1,usuario.dato_2,usuario.dato_3 FROM reserva_sala,usuario WHERE reserva.id_sala='$sala' AND reserva.id_bloque='$bloque' AND reserva.fecha='$date' AND reserva.rut=usuario.rut

Saludos.-
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #3 (permalink)  
Antiguo 12/10/2006, 16:02
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
pero de esta manera tambien tendria que traer todos los campos de la tabla sal tambien, pk ya no estoy seleccionando todo.
  #4 (permalink)  
Antiguo 12/10/2006, 17:37
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
he probado de muchas formas y todavia no doy con la solucion...

como lo hago para indicar que la row es de la tabla usuario??

<input type="text" name="nombre" value="<?php echo $row[2];?>" >
  #5 (permalink)  
Antiguo 12/10/2006, 18:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Vamos a ver .. ten claro los datos que generas con esa consulta SQL .. tu traes una combinación de los campos que llamas en tu consulta y bajo las condiciones que tu impones (WHERE ....)

Las referencias a un campo determinado de un resultado dado en el caso de que llames a várias tablas, para evitar confusiones debes crear "ALIAS" en SQL.

La llamada a los campos que tu necesites de las tablas implicadas son con la sintax SQL:

nombre_tabla.campo

Y como te comentaba .. si tienes algún tipo de confusión con nombres duplicados .. usas un ALIAS.

Como no indicas la estructura de tus tablas para ver los nombres de los campos que usas y en que tablas .. no puedo ser más concreto:

Código PHP:
$result mysql_query("SELECT usuario.campo_que_sea FROM reserva_sala,usuario WHERE reserva.id_sala='$sala' AND reserva.id_bloque='$bloque' AND reserva.fecha='$date' AND reserva.rut=usuario.rut"$conexion); 

if (
$row mysql_fetch_array($result)){ 
echo
"La Sala no se encuentra disponible, ya ha sido reservada por: ".$row['campo_que_sea']."<br> <br>"
?> 
Te fijas que hago referencia al nombre del campo y no al "n°" del resultado? .. eso ayuda a acceder al resultado.

Tu problema es que confundes el "n° de columna" que está tu dato en la tabla que necesitas con la NUEVA tabla que estás generando al hacer un "SELECT" que llama a más de una tabla y a campos en forma selectiva ...

Usando Alias:
Código PHP:
$result mysql_query("SELECT usuario.campo_que_sea AS nombre_nuevo FROM reserva_sala,usuario WHERE reserva.id_sala='$sala' AND reserva.id_bloque='$bloque' AND reserva.fecha='$date' AND reserva.rut=usuario.rut"$conexion); 

if (
$row mysql_fetch_array($result)){ 
echo
"La Sala no se encuentra disponible, ya ha sido reservada por: ".$row['nombre_nuevo']."<br> <br>"
?> 
Ahí creé un "alias" .. una "columna" nueva de resultados con ese nombre para hacer referencia a esta en forma exclusiva y no a otra que pudiera tener el mismo nombre (y tal vez coincidan sus valores .. ).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 12/10/2006, 22:12
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
xcia cluster por la aclaracion, = estuve tratadno con un AS pero no me resulto.

mira mi slect tiene 2 objetivos asi te cuento bien lo que quiero hacer:
1) comparar si fecha, bloque y sala son los mismos para no dejar ingresar la reserva ESTO ME FUNCIONA

2)de ese select de la tabla reserva, tengo como FK el rut de la persona y yo kiero mostrar en una tabla HTML su nombre, apellido e email para que el desafortunado sepa kien hizo la reserva.

Como rescato el nombre,apellido y email de la persona que ya hizo la reserva en mis TEXTFIELDS donde reserva_sala.rut(del SELECT que hice)=usuario.rut
Código:
create table if not exists RESERVA_SALA
(
   ID_RSALA                       int                            not null AUTO_INCREMENT,
   ID_SALA                        int                            not null,
   ID_BLOQUE                      int                            not null,
   RUT                            varchar(12)                    not null,
   FECHA_RSALA                    varchar(50),
   primary key (ID_RSALA)
);
asi es mi condicion completa
Código PHP:
<?
$result 
mysql_query("SELECT * FROM reserva_sala WHERE reserva_sala.id_sala='$sala' AND reserva_sala.id_bloque='$bloque' AND reserva_sala.fecha_rsala='$date'"$conexion);
if (
$row mysql_fetch_array($result)){

echo
"La Sala no se encuentra disponible, ya ha sido reservada por:<br> <br> ";?>
Código HTML:
Nombre:<input type="text" name="nombre_quien_reservo_1º" value="<?php $RESCATAR NOMBRE;?>">

Apellido: <input type="text" name="apellido_quien_reservo_1º" value="<?php $RESCATAR APELIDO;?>">

Email:<input type="text" name="mail_quien_reservo_1º" value="<?php $RESCATAR MAIL;?>"> 
<?
Código PHP:
} else{
//HAGO EL INSERT PARA REGISTRAR RESERVA?> 
  #7 (permalink)  
Antiguo 13/10/2006, 05:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Como rescato el nombre,apellido y email de la persona que ya hizo la reserva
Se supone que eso sale de la tabla "usuario" que haces referencia en:

Código PHP:
$result mysql_query("SELECT * FROM reserva_sala,usuario WHERE reserva.id_sala='$sala' AND reserva.id_bloque='$bloque' AND reserva.fecha='$date' AND reserva.rut=usuario.rut"$conexion); 
Si es así .. ya te expliqué como hacer referencia en tu "SELECT" a los nombres y campos concretos de una tabla:

nombre_tabla.nombre_campo

Y al aplicar mysql_fetch_array() ... lo accedes en: $row['nombre_campo'] (da igual la tabla .. Y si se repiten los nombres en las tablas .. pues usas un AS (Alias).

Código PHP:
Nombre:<input type="text" name="nombre_quien_reservo_1º" value="<?php echo $row['nombre_campo']; ?>">
Por favor .. si haces "pruebas" con las indicaciones que se te dán .. pon el código que usas -completo-. Si te dejas "información" por médio o la sacas de contexto así no hacemos más que dar vueltas al problema y tu no llegas a la solución rápida.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 13/10/2006, 10:55
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
oh xcias cluster te pasaste , ahora me resulto, pero con un pequeño detalle, declare todas mis varibles en vez de un seelct *, y nombre y apellido me los muestra bien, pero email me sale un error en el textfield que es este:
Código PHP:
<br /><b>Notice</b>:  Use of undefined constant email assumed 'email' in ...crea_res.php</bon line <b>300</b><br />e@e.com 
, pero si te das cuenta me muestra el mail alfinal.

lei por ahi que no son tan importantes los notice y me gustaria sacar ese mensaje,osea que mysql no me muestre ningun notice, me influye en algo hacer eso?? como se hace?? pq el resultado me lo muestra =.
tambien tengo notice con tu autentificator por undefined index por HTTP_REFERER, pero me funciona, no le veo la imoprtancia, tengo easy php 1.8 por si kieres hacer referencia a un archivo a modificar

SLAUDOOOS

aaahh y de todas menras me gustaria saber cual es la solucion para el problema del mostar el mail en el textfield si es que sabes adioos

Última edición por gazuzax; 13/10/2006 a las 11:12
  #9 (permalink)  
Antiguo 13/10/2006, 14:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Te lo he comentado várias veces .. si no pones el código que quedó tras tus modificaciones o aplicaciones de lo que creistes entender y muestras los mensajes de errores -completos- así no hacemos nada.

Lo más probable es que usastes:

$row[email] en lugar de lo correcto: $row['email'] .. el "notice" te avisa que asumió que no quieres usar una "constante" (que en PHP van sin comillas!!!) como indice de un array ($row[])


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 13/10/2006, 15:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
lei por ahi que no son tan importantes los notice y me gustaria sacar ese mensaje,osea que mysql no me muestre ningun notice, me influye en algo hacer eso?? como se hace?? pq el resultado me lo muestra =.
tambien tengo notice con tu autentificator por undefined index por HTTP_REFERER, pero me funciona, no le veo la imoprtancia, tengo easy php 1.8 por si kieres hacer referencia a un archivo a modificar
Los "Notice" son buenos que se presenten .. así te obligan a -programar- en forma correcta.

Tu puedes ocultar mensajes de error con la @ delante de funciones o declaraciones de variables que puedan original algún error, también usar error_reporting() y ajustar el nivel de mensajes de error que quieres presentar o su directiva de mismo nombre en tu php.ini

http://www.php.net/manual/es/ref.errorfunc.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 14/10/2006, 02:08
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
se nota que sabes Cluster otra vez tenias razon no le puse las comillas simples. no siempre pongo mi codigo pq no kiero hacer tan engorroso mi prblema, y a veces asumo que errores de este tipo son comunes y que gente con mas experiencia se los sabe de memoria, no me equivoque esta vez :D.
muchas xcias por el documento, me servira mucho, yo se que es bueno que aparezcan los notice, seria algo que solo cambiaria al final de mi sistema.

te agardezco mucho tus respuestas, ahora aprendi como hacer referencia a dirferentes campos de diferentes tablas para mostrar. te pasaste SALUDOS Y XCIAS
  #12 (permalink)  
Antiguo 14/10/2006, 11:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por gazuzax Ver Mensaje
se nota que sabes Cluster otra vez tenias razon no le puse las comillas simples. no siempre pongo mi codigo pq no kiero hacer tan engorroso mi prblema, y a veces asumo que errores de este tipo son comunes y que gente con mas experiencia se los sabe de memoria, no me equivoque esta vez :D.
muchas xcias por el documento, me servira mucho, yo se que es bueno que aparezcan los notice, seria algo que solo cambiaria al final de mi sistema.

te agardezco mucho tus respuestas, ahora aprendi como hacer referencia a dirferentes campos de diferentes tablas para mostrar. te pasaste SALUDOS Y XCIAS
Aquí por lo menos agradecemos "que sobre que no que falte" .. es decir .. tu pega el código, date el tiempo de explicar tu problema, pon los mensajes de error que puedas obtener completos y deja que la gente lo evalue. No obligues o apeles a la "experiencia" de la gente. La respuesta que te día al respecto realmente nunca me había pasado, sólo leí el mensaje de error y empecé a "suponer" ..

Si quieres respuestas más rápido y menos "suposiciones" (aunque a veces se "acierte") .. mejor sigue los consejos que te indico por el bien tuyo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 04:27.