Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] no devuelve los datos después de consulta

Estas en el tema de no devuelve los datos después de consulta en el foro de PHP en Foros del Web. tengo este código @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $tipo_habi = $_POST [ 'habitaciones' ] ;                 $consulta ...
  #1 (permalink)  
Antiguo 22/03/2013, 02:05
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Pregunta no devuelve los datos después de consulta

tengo este código

Código PHP:
Ver original
  1. $tipo_habi=$_POST['habitaciones'];
  2.                
  3. $consulta="SELECT * FROM usuarios, habitaciones where (usuario='".$_SESSION['usuario']."' and usuarios.id_habitaciones = habitaciones.id and ".$tipo_habi." = ".$tipo_habi.")";
  4. $result_conexion=Conectar($consulta);
  5. echo "hola"; //hasta aquí se ejecuta
  6. while($fila=mysql_fetch_array($result_conexion))
  7. {
  8.    
  9.     echo $fila[$tipo_habi]; //no imprime en pantalla la consulta
  10. }

y no me devuelve el echo que hay en el while, no entiendo por qué si alguien me puede ayudar. puedo proporcionar todo el código que necesiten. gracias!!
  #2 (permalink)  
Antiguo 22/03/2013, 04:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 219
Antigüedad: 12 años, 6 meses
Puntos: 31
Respuesta: no devuelve los datos después de consulta

necesitaría ver el código de la función Conectar()
  #3 (permalink)  
Antiguo 22/03/2013, 04:36
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

Cita:
Iniciado por cachusan Ver Mensaje
necesitaría ver el código de la función Conectar()
por supuesto aquí está

Código PHP:
Ver original
  1. function Conectar($TextoSQL)
  2.     {
  3.          $IDConexion = mysql_connect("localhost", "root", "");
  4.        
  5.          mysql_select_db("hoteles", $IDConexion);
  6.        
  7.             $IDConsulta = mysql_query($TextoSQL);
  8.        
  9.          if ($IDConsulta == false)
  10.             {
  11.             echo "ERROR: <br>\n";
  12.             echo mysql_error($IDConexion);
  13.             }
  14.        
  15.         return $IDConsulta;
  16.     }
  #4 (permalink)  
Antiguo 23/03/2013, 06:19
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

¿alguien me puede ayudar por favor? no logro encontrar el problema
  #5 (permalink)  
Antiguo 23/03/2013, 06:28
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: no devuelve los datos después de consulta

Intenta con esto

Código PHP:
Ver original
  1. $tipo_habi=$_POST['habitaciones'];
  2.                
  3. $consulta="SELECT * FROM usuarios, habitaciones WHERE usuario='$_SESSION[usuario]' and usuarios.id_habitaciones = habitaciones.id and ".$tipo_habi." = '$tipo_habi'")";
  4. $result_conexion=Conectar($consulta);
  5.  
  6. echo "hola"; //hasta aquí se ejecuta
  7.  
  8. while($fila=mysql_fetch_array($result_conexion))
  9. {
  10.    
  11.    echo $fila[tipo_habi]; //no imprime en pantalla la consulta
  12. }
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #6 (permalink)  
Antiguo 23/03/2013, 06:33
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: no devuelve los datos después de consulta

No es mas sencillo y efectivo hacerlo con INNER JOIN???
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 23/03/2013, 06:45
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

no sé a qué te refieres con INNER JOIN :S
  #8 (permalink)  
Antiguo 23/03/2013, 06:50
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: no devuelve los datos después de consulta

Amigo, estas relacionando 2 tablas distintas.. donde tu dato comun entre las dos tablas es id_habitaciones y en la otra tabla es id... las tablas para que sean más eficaces deben estar relacionadas por un método... en este caso hay varias formas de hacerlo, aunque lo ideal sería por INNER JOIN...

http://mysqlya.com.ar/temarios/descr...od=62&punto=68
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #9 (permalink)  
Antiguo 23/03/2013, 07:02
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

vale, he leído sobre INNER JOIN, lo desconocía.

ahora lo he aplicado a mi código y me da varios errores.

esto es lo que he aplicado

Código PHP:
Ver original
  1. $consulta="SELECT * FROM usuarios INNER JOIN habitaciones ON (usuarios.id_habitaciones = habitaciones.id)"; /*and ".$tipo_habi." = ".$tipo_habi.")";*/
  2.                 $result_conexion=Conectar($consulta);
  3.                 echo $consulta;
  4.                 while($fila=mysql_fetch_array($result_conexion))
  5.                 {
  6.                     if($_SESSION['usuario']==$fila['usuario'])
  7.                     {
  8.                         echo "hola";
  9.                         echo $fila['triple'];
  10.                     }
  11.                 }

y estos son los errores que me devuelve


Warning: mysql_connect(): MySQL server has gone away in C:\xampp\htdocs\xampp\web\trabajo\conectar.php on line 5

Warning: mysql_connect(): MySQL server has gone away in C:\xampp\htdocs\xampp\web\trabajo\conectar.php on line 5

Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in C:\xampp\htdocs\xampp\web\trabajo\conectar.php on line 7
ERROR:

Warning: mysql_error() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\xampp\web\trabajo\conectar.php on line 14
SELECT * FROM usuarios INNER JOIN habitaciones ON (usuarios.id_habitaciones = habitaciones.id)
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\xampp\web\trabajo\funciones.php on line 120



no entiendo esos errores :S
  #10 (permalink)  
Antiguo 23/03/2013, 07:10
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: no devuelve los datos después de consulta

Código PHP:
"SELECT *.u,*.h FROM usuarios u

INNER JOIN habitaciones h ON u.id_habitaciones = h.id

WHERE h.tipo_habi="
.$tipo_habi
Aunque mi duda, como no soy vidente es saber si el campo tipo_habi corresponde a la tabla de usuarios o a la tabla de habitaciones ya que de eso dependerá el resultado, y saber si tipo_habi tiene alguna relacion con la tabla usuarios tanto como la de habitaciones... si muestras la estructura de tu tabla y que exactamente estas buscando, no tendremos que dar tantas vueltas o andar deduciendo cosas =D...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #11 (permalink)  
Antiguo 23/03/2013, 07:18
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

Cita:
Iniciado por loncho_rojas Ver Mensaje
Código PHP:
"SELECT *.u,*.h FROM usuarios u

INNER JOIN habitaciones h ON u.id_habitaciones = h.id

WHERE h.tipo_habi="
.$tipo_habi
Aunque mi duda, como no soy vidente es saber si el campo tipo_habi corresponde a la tabla de usuarios o a la tabla de habitaciones ya que de eso dependerá el resultado, y saber si tipo_habi tiene alguna relacion con la tabla usuarios tanto como la de habitaciones... si muestras la estructura de tu tabla y que exactamente estas buscando, no tendremos que dar tantas vueltas o andar deduciendo cosas =D...
la variable tipo_habi la comenté. equivale a $_POST['habitaciones'] (que es lo que selecciono en el form)

lo que he aplicado es algo sencillo, una consulta donde relaciono la tabla usuarios con la tabla habitaciones, después del while le digo que mientras que el usuario en sesion equivalga a la la fila usuario entonces me devuelva el valor de por ejemplo el campo habitaciones.triple.

no entendí del todo bien tu último código para adaptar el mío y ver si funciona, no se cómo adaptar el mío tomando como referente el tuyo.

como puedes notar soy noob en esto, pero con ganas de aprender y mejorar jeje

sinceramente gracias por lo que me estás ayudando
  #12 (permalink)  
Antiguo 23/03/2013, 07:23
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: no devuelve los datos después de consulta

pero si en tu primer script pusiste $tipo_habi=$tipo_habi.. eso equivale a decir que coca_cola es igual a coca_cola lo que no tiene sentido... por eso te pido que muestras la estructura de tus 2 tablas asi no tendremos que estar adivinando que campos tiene cada una.. es simple

TABLA HABITACIONES

id_habitacion | habitaciones.. etc etc

TABLA USUARIO

id_usuario | nombre | etcc. etcc

para saber que estamos relacionando
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #13 (permalink)  
Antiguo 23/03/2013, 07:30
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

ahhh entiendo lo que me dices, ahí estaba intentando hacer una consulta dinámica, donde consultara lo que le dijera por form, es la consulta original queme dió el primer error. pero desistí de eso al ver que no funcionaba. quiero hacer algo más sencillo porque sino es más difícil entender dónde está el problema.

así que he modificado la consulta a una más sencilla, es esa que te puse.

las tablas tienen estos campos:

usuarios

id|usuario|passwd|id_habitaciones

habitaciones

id|simple|doble|triple|cuadruple

yo solo quiero relacionarlas por php y que me devuelva el valor del campo que le pase en el código, pero no me funciona, no entiendo por qué ya que nunca me había dado problema la lectura a base de datos y llevo días estancado con este error :S
  #14 (permalink)  
Antiguo 23/03/2013, 07:35
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: no devuelve los datos después de consulta

si esa es la estructura de tu tabla habitaciones esta muy mal =D

deberia ser solo



Código HTML:
#####################
TABLA HABITACIONES
######################
id_habitaciones	|	tipo_habitacion
______________________________
1	|	simple
2	|	doble
3	|	triple
4	|	cuadruple
El problema es que no dices que datos necesitas quitar, te lo pregunto por segunda vez... cual es el objetivo de esto... que intentas hacer.. quieres datos de clientes y en que habitacion esta? quieres saber dependiendo del tipo de habitacion, que clientes eligieron tal o cual habitacion? que necesitas?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #15 (permalink)  
Antiguo 23/03/2013, 07:39
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

se lo que me dices, pero es que en habitaciones cada tipo de habitación lleva un número de habitaciones: ejemplo

usuarios habitaciones

id (1) usuario (roberto) passwd (1234) id_habitaciones (1) id (1) simple (400)

creo que así mejor para entender

es algo sencillo:

un usuario gerente de un hotel se identifica y tiene la opción de ver cuántas habitaciones tiene en total, cuantas ocupadas y cuantas libres.
luego poder ingresar más habitaciones o menos habitaciones.

evidentemente no es para un trabajo, es para practicar, ya que estoy aprendiendo todavía
  #16 (permalink)  
Antiguo 23/03/2013, 07:58
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: no devuelve los datos después de consulta

Sea o no para trabajo, el problema es que si lo que buscas es eso, pues estamos en mal camino...
Saber cuantas habitaciones tiene pues es facil... haces un select a la tabla de habitaciones

Saber cuantas estan ocupadas, en la tabla de habitaciones debería tener un campo OCUPADO, y que cuando este ocupado este en 1 y cuando esté desocupado lo cambies a 0.

Asi que no se que tiene que ver el usuario en todo esto....

deberías tener unas tablas de:

usuario, habitaciones y otra de reservas donde en reserva vas guardando los datos de habitaciones y usuarios, saber si esta ocupado, que dia se ocuparon, que dia tienen que desocupar, el usuario que esta ocupando la habitacion...

El problema con esto es que no haz leido acerca de tablas relacionadas y foreing_key
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #17 (permalink)  
Antiguo 23/03/2013, 08:02
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

es que mi planteamiento es de una cadena de hoteles, donde un gerente de un hotel solo pueda ver las habitaciones de su hotel y pueda modificar esa cantidad solo de su hotel. por eso el usuario es importante.

no se lo que son las claves foráneas pero creo que sí se como funcionan las tablas relacionales.

yo lo que creo es que la consulta, en alguna parte me está dando error y no me muestra los datos que quiero por alguna razón que no logro entender, ya te digo, nunca tuve problemas con la lectura, actualización e inserción de datos, pero fué practicar esto y plof... error :S
  #18 (permalink)  
Antiguo 23/03/2013, 10:04
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: no devuelve los datos después de consulta

qué lástima que esta comunidad no tenga una guillotina pública o una manera de castigar los despiestes.

encontré mi problema, soy yo. me despisté y las id_habitaciones estaban vacías, obviamente no puedo relacionar id´s que no existen. perdon por las molestias, ahora todo funciona como es de esperar

Etiquetas: devuelve, mysql, select, sql
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 07:16.