Foros del Web » Programando para Internet » PHP »

Obtener resultados de tabla mysql a traves php

Estas en el tema de Obtener resultados de tabla mysql a traves php en el foro de PHP en Foros del Web. Hola!Es la primera vez que escribo en el foro.!! Les comento que tengo problemas para obtener los registros de una tabla mediante una consulta sql ...
  #1 (permalink)  
Antiguo 21/08/2009, 13:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Obtener resultados de tabla mysql a traves php

Hola!Es la primera vez que escribo en el foro.!! Les comento que tengo problemas para obtener los registros de una tabla mediante una consulta sql y php. Tengo una base de datos con cuatro tablas. Ellas son:

ZONAS:
-cod_zona (primary key)
-desc_zona (es el nombre de la zona)

CATEGORIAS
-cod_cat(primary key)
-desc_cat(es el nombre de la categoria)


ESPECIALIDADES
cod_esp (primary key)
desc_esp (es el nombre de la especialidad)
cod_cat (index)

MEDICOS
cod_med (primary key)
nombre_med
direccion_med
telefono_med
cod_zona (index)
cod_cat (index)
cod_esp (index)


He creado una lista desplegable en la cual aparecen las zonas recogiendo los datos de la tabla zonas.

Luego hice dos listas desplegables mas que son dependientes.
La primera lista dependiente recoge los datos de la tabla categorias
La segunda lista dependiente recoge los datos de la tabla especialidades en base a lo elegido a la tabla categorias.
Lo que quiero hacer es que en base a lo elegido en las tres listas se muestren los resultados utilizando la tabla medicos y asi poder mostrar como resultado los registros nombre_med, direccion_med,telefono_med que pertenencen a la tabla medicos.


El problema es que al probar las listas en el navegador me aparece el siguiente error:

Unknown column 'Guardias' in 'where clause' donde 'Guardias' es uno de los datos que se encuentran en la tabla especialidades y que, por lo tanto, se muestra en la lista desplegable "especialidades"..


Aca les dejo el codigo.
Esta es la pagina php llamada pagina1.php donde se encuentra el formulario con las tres listas desplegables:

<html>
<head>

<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<?php
$con = mysql_connect('localhost', 'root', 'root');
mysql_select_db('empresa');
?>

<script>
function componer_Centros(cod_area)
{
//alert(cod_area);
document.miformulario.depto.length=0;
document.miformulario.depto.options[0] = new Option("-- Seleccione --","","defaultSelected","");
var indice=1;
<?
$sql_depto = "SELECT * from especialidades";
$rs_depto = mysql_query($sql_depto, $con);
if(mysql_num_rows($rs_depto)>0)
{
while($row_depto = mysql_fetch_assoc($rs_depto))
{

?>
if(cod_area=='<?=$row_depto["cod_cat"]?>')
{
document.miformulario.depto.options[indice] = new Option("<?=$row_depto["desc_esp"]?>","<?=$row_depto["desc_esp"]?>");
indice++;
}
<?
}
}
mysql_close($con);
?>
}

</script>
</head>

<body>

<p>Seleccion de un select y cambiar los valores de otro select sin tener que submitar (valido segun su uso)</p>

<form name="miformulario" method="post" action="PAGINA2.php">
<table width="249" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Zona</td>
<td>Categorias</td>
<td>Especialidad</td>
</tr>

<tr>
<tr>
<td><select name="zonas" id="zonas">
<option value="">--Seleccione--</option>
<?
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "root";
$bd_base = "empresa";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>
<? $sql = "SELECT * from zonas";
$rs = mysql_query($sql, $con); ?>
<? if(mysql_num_rows($rs)>0)
{
while($row = mysql_fetch_assoc($rs))
{
?>
<option value="<?=$row["cod_zona"]?>"><?=$row["desc_zona"]?></option>
<?
}
}
?>
</select>
<td><select name="empresa" id="empresa" onChange="componer_Centros(this.value)">
<option value="">--Seleccione--</option>
<?
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "root";
$bd_base = "empresa";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>
<? $sql = "SELECT * from categorias";
$rs = mysql_query($sql, $con); ?>
<? if(mysql_num_rows($rs)>0)
{
while($row = mysql_fetch_assoc($rs))
{
?>
<option value="<?=$row["cod_cat"]?>"><?=$row["desc_cat"]?></option>
<?
}
}
?>
</select></td>
<td><select name="depto" id="depto">
<option>--seleccione--</option>
</select></td>
<TD><input type="submit" name="cmdBuscar" id="cmdBuscar" value="IR"></TD>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
</table>
</form>


</body>
</html>




y esta es la pagina llamada pagina2.php a la cual llama el formulario:
<body>
<table border="1">
<tr>
<td>ID Propiedad </td>
<td>Propiedad</td>
<td>Ciudad</td>
<td>Descripci&oacute;n</td>
<td>Precio</td>
</tr>
<?php
$bd_host = "localhost";
$bd_usuario = "root";
$bd_password = "root";
$bd_base = "empresa";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>
<?php
$sql = "SELECT * FROM medicos, zonas, categorias, especialidades where medicos.cod_zona=zonas.cod_zona and categorias.cod_cat=medicos.cod_cat and categorias.cod_cat=especialidades.cod_cat and medicos.cod_esp=especialidades.cod_esp ";
if ($HTTP_POST_VARS['zonas'])
$sql .= " AND medicos.cod_zona = " .$_POST['zonas'];

if ($HTTP_POST_VARS['empresa'])
$sql .= " AND medicos.cod_cat = " .$_POST['empresa'];

if ($HTTP_POST_VARS['depto'])
$sql .= " AND medicos.cod_cat = " .$_POST['depto'];

$sql .= " ORDER BY nombre_med ASC";
$resultado = mysql_query($sql) or die ($Sql .mysql_error()."" );
while ($registro = mysql_fetch_array($resultado)) {
?>
<tr>
<td><?php echo $registro['cod_zona']; ?></td>
<td><?php echo $registro['desc_zona']; ?></td>
<td><?php echo $registro['nombre_med']; ?></td>
<td><?php echo $registro['direccion_med']; ?></td>
</tr>

<?php
}
mysql_free_result($resultado);
mysql_close($con);
?>
</table>

</table>
</body>
</html>



Bueno, espero que me puedan ayudar! Gracias!!!
Saludos!!!
  #2 (permalink)  
Antiguo 21/08/2009, 14:24
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Obtener resultados de tabla mysql a traves php

en esta secciond e codigo cambiala por lo siguiente, es en pagina2.php

Código PHP:
if ($HTTP_POST_VARS['zonas'])
$sql .= " AND medicos.cod_zona = '" .$_POST['zonas']."'";

if (
$HTTP_POST_VARS['empresa'])
$sql .= " AND medicos.cod_cat = '" .$_POST['empresa']."'";

if (
$HTTP_POST_VARS['depto'])
$sql .= " AND medicos.cod_cat = '" .$_POST['depto']."'"
lo que sucede es que el contenido de la variable lo esta interpretando como un CAMPO y no como un valor de este campo.

suerte
  #3 (permalink)  
Antiguo 21/08/2009, 15:44
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Obtener resultados de tabla mysql a traves php

Cita:
Iniciado por lair Ver Mensaje
en esta secciond e codigo cambiala por lo siguiente, es en pagina2.php

Código PHP:
if ($HTTP_POST_VARS['zonas'])
$sql .= " AND medicos.cod_zona = '" .$_POST['zonas']."'";

if (
$HTTP_POST_VARS['empresa'])
$sql .= " AND medicos.cod_cat = '" .$_POST['empresa']."'";

if (
$HTTP_POST_VARS['depto'])
$sql .= " AND medicos.cod_cat = '" .$_POST['depto']."'"
lo que sucede es que el contenido de la variable lo esta interpretando como un CAMPO y no como un valor de este campo.

suerte

Hola!! Gracias por responder!! hice lo me dijiste.. y ahora al ejecutar la consulta no me aparece ningun error.. pero no me muestra ningun registro de la consulta que he hecho.. solo aparece el formato de la tabla donde deben ir colocados los registros de la consulta.. pero estos registros no aparacen :(.. que sera??

Saludos!!
  #4 (permalink)  
Antiguo 23/08/2009, 12:50
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Obtener resultados de tabla mysql a traves php

verifica que cada condicion esta cumpliendo, es muy probable que una de esta te este retornando falso
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:53.