Foros del Web » Programando para Internet » PHP »

Como realizo este tipo de consulta

Estas en el tema de Como realizo este tipo de consulta en el foro de PHP en Foros del Web. ok tengo lo siguiente 3 tablas en mysql geocercas: geoid,empresa,nombre units_geonfence: unitid,geoid units: unitid,vehiculo,conductor muy bien esas son mis 3 tablas ahora lo que quiero ...
  #1 (permalink)  
Antiguo 18/11/2010, 15:30
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 14 años, 1 mes
Puntos: 0
Como realizo este tipo de consulta

ok tengo lo siguiente 3 tablas en mysql

geocercas: geoid,empresa,nombre

units_geonfence: unitid,geoid

units: unitid,vehiculo,conductor

muy bien esas son mis 3 tablas
ahora lo que quiero hacer es lo siguiente que yo pueda buscar el nombre de la geocerca(osea el campo nombre de la tabla georcas) y me muestre una consulta con todos los datos de la tabla geocercas menos el de geoid no lo ocupo mostrar lo que si ocupo del campo geoid de la tabla geocercas esque por medio de ese campo me muestre en la misma consulta el campo unitid de la tabla units_geonfence

hasta ahora eh hecho la consulta nada mas la busqueda del campo nombre de la tabla geocerca y realizar la consulta de todos los campos de esa tabla menos el de geoid la consulta se muestra en una tabla

el codigo que tengo hasta ahora es el siguiente

<?php
include("config.php");
$conexion=conectarse("***","****","****");
$result=mysqli_query($conexion, "select * from geocercas where nombre='$tnombre' ");
while ($row=mysqli_fetch_array($result))
{
?>

y por medio de la instruccion <? echo $row["nombre"] ?> muestro el valor del campo en cualquier parte de la tabla en este caso del nombre que consulte

ahora como hago lo que quiero mostrar el campo unitid de la tabla units_geonfence ??
  #2 (permalink)  
Antiguo 18/11/2010, 16:04
 
Fecha de Ingreso: noviembre-2009
Mensajes: 226
Antigüedad: 15 años
Puntos: 19
Respuesta: Como realizo este tipo de consulta

Hola,

No entiendo bien lo que pides... ¿Se supone que por cada elemento "geoid" de la tabla geocercas hay muchos "geoid" en la tabla units_geonfence?

¿O quieres hacer un simple JOIN en el que coincidan los "geoid"?

Saludos!
  #3 (permalink)  
Antiguo 18/11/2010, 16:13
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Como realizo este tipo de consulta

si en la tabla geocercas en el campo geoId hay un valor por ejemplo 12
en la tabla units_geonfence en el campo geoId hay un valor ejemplo 12 y tambien en esa tabla hay un campo llamado unitid que es el que corresponde al de geoId

ejemplo bien resumido
tabla:geocercas campo:geoId valor:12 campo:nombre:juan

tabla:unitsgeonfence campo:geoId valor: 12 campo:unitid valor 7

entonces en la tabla quiero mostrar

nombre: juan y unitid:7
  #4 (permalink)  
Antiguo 18/11/2010, 16:22
 
Fecha de Ingreso: noviembre-2009
Mensajes: 226
Antigüedad: 15 años
Puntos: 19
Respuesta: Como realizo este tipo de consulta

Hola,

SELECT gc.nombre, ug.unitid FROM geocercas gc JOIN unitsgeonfence ug USING(geoid);

Prueba con esa consulta. Un saludo
  #5 (permalink)  
Antiguo 18/11/2010, 16:25
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Como realizo este tipo de consulta

Código MySQL:
Ver original
  1. SELECT  geocercas.nombre, unitsgeonfence.unitid   FROM geocercas INNER JOIN unitsgeonfence
  2. ON geocercas.geoId=unitsgeonfence.geoId
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #6 (permalink)  
Antiguo 18/11/2010, 16:45
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Como realizo este tipo de consulta

pues mira aplicando tu codigo al modo real en que lo quiero hacer en mi consulta con los campos reales de las tablas lo deje asi

Código PHP:
<?php
include("config.php");
$conexion=conectarse("****","****","*****");
$result=mysqli_query($conexion"select * from geocercas where nombre='$tnombre' and SELECT geocercas.Nombre, geocercas.empresa, geocercas.tipo, geocercas.Descripcion, geocercas.zona, geocercas.Mapa, geocercas.Grosor units_geofence.unitid   FROM geocercas INNER JOIN units_geofence
ON geocercas.geoId=unitsgeonfence.geoId"
);
while (
$row=mysqli_fetch_array($result))
{
  
?>  
  <tr>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["unitid"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Nombre"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["empresa"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["tipo"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Descripcion"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["zona"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Mapa"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Grosor"?></div></th>
  </tr>
  <?
    
}
    
mysqli_free_result($result);
    
?>
pero al final me tira error
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\proyectocesar\geoquerys.php on line 109

Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\proyectocesar\geoquerys.php on line 124
  #7 (permalink)  
Antiguo 18/11/2010, 16:48
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Como realizo este tipo de consulta

SAludos

Esta mal hecha tu sentencia no puedes colocar de esa forma dos subconsultas y ademas para este caso no es necesario

Código MySQL:
Ver original
  1. SELECT  geocercas.*, unitsgeonfence.unitid   FROM geocercas INNER JOIN unitsgeonfence
  2.          ON geocercas.geoid=unitsgeonfence.geoid
  3. WHERE geocercas.nombre='$tnombre'
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #8 (permalink)  
Antiguo 18/11/2010, 16:59
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Como realizo este tipo de consulta

Código PHP:
  <?php
include("config.php");
$conexion=conectarse("gerson","gersongps","gerson");
$result=mysqli_query($conexion"SELECT geocercas.Nombre, geocercas.empresa, geocercas.tipo, geocercas.Descripcion, geocercas.zona, geocercas.Mapa, geocercas.Grosor units_geofence.unitid FROM geocercas INNER JOIN units_geofence ON geocercas.geoId=units_geofence.geoId WHERE geocercas.nombre='$tnombre'");
while (
$row=mysqli_fetch_array($result))
{
  
?>  
  <tr>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["unitid"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Nombre"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["empresa"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["tipo"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Descripcion"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["zona"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Mapa"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Grosor"?></div></th>
  </tr>
  <?
    
}
    
mysqli_free_result($result);
    
?>
</table>
la hice asi y mira me doy estos errores
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\proyectocesar\geoquerys.php on line 110

Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\proyectocesar\geoquerys.php on line 125
  #9 (permalink)  
Antiguo 18/11/2010, 17:03
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Como realizo este tipo de consulta

SAludos

1. verifica que los nombres de los campos esten correctamente.
2. Utiliza mysqli_error en tus sentencias de la siguietne manera te ayudara a detectar el error mas acertadamente
Código PHP:
Ver original
  1. $sentencia="SELECT geocercas.Nombre, geocercas.empresa, geocercas.tipo, geocercas.Descripcion, geocercas.zona, geocercas.Mapa, geocercas.Grosor units_geofence.unitid FROM geocercas INNER JOIN units_geofence ON geocercas.geoId=units_geofence.geoId WHERE geocercas.nombre='$tnombre'";
  2. $result=mysqli_query($conexion,$sentencia )or die(mysqli_error());
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #10 (permalink)  
Antiguo 19/11/2010, 09:39
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Como realizo este tipo de consulta

pues mira que tenia todos los campos correctos y siempre me daba error y deje el codigo asi quitando unicamente del select la sentencia "units_geofence.unitid" mira el codigo no me tira error me muestra los datos como yo quiero solamente no unitid estaba pensando no sera que esta mal colocado lo de units_geofence.unitid en el select hay otra manera que me deje ver ese campo mientras sea respectivo al geoId

el codigo lo deje exactamente asi
Código PHP:
 <?php
include("config.php");
$conexion=conectarse("gerson","gersongps","gerson");
$rs="select geocercas.Nombre, geocercas.empresa, geocercas.tipo, geocercas.Descripcion, geocercas.zona, geocercas.Mapa, geocercas.Grosor FROM geocercas INNER JOIN units_geofence ON geocercas.geoId=units_geofence.geoId WHERE geocercas.Nombre='$tnombre'";
$result=mysqli_query($conexion,$rs)or die(mysqli_error());
while (
$row=mysqli_fetch_array($result))
{
  
?>  
  <tr>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["unitid"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Nombre"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["empresa"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["tipo"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Descripcion"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["zona"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Mapa"?></div></th>
    <th bgcolor="#F0E68C" scope="col"><div align="center"><? echo $row["Grosor"?></div></th>
  </tr>
  <?
    
}
    
mysqli_free_result($result);
    
?>
</table>
me muestra los datos asi solo me falta el unitid que sea respectivo al registro por ejemplo el primer registro que muestra tiene un Id de Unidad el segundo tiene otro y asi sucesivamente eso es lo que no logro mostrar

http://www.imaxenes.com/imagen/dsfdsf1kl88na.jpg.htm esa es una imagen de como me muestra los registros
  #11 (permalink)  
Antiguo 19/11/2010, 09:54
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: Como realizo este tipo de consulta

Saludos

Es por que dentro del select hace falta indicar que se muestre la columna unitId y $row["unitid"] es $row["unitId"].
__________________
:.:Nano.:: @nano_hard - Retornando al foro

Etiquetas: tipo
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 12:52.