Foros del Web » Programando para Internet » PHP »

ayuda con una consulta de un formulario en php.

Estas en el tema de ayuda con una consulta de un formulario en php. en el foro de PHP en Foros del Web. buenos días compañeros, tengo el siguiente problema. tengo una página que me lista el contenido de mi bbdd, para poder ponerlo todo bien he utilizado ...
  #1 (permalink)  
Antiguo 07/03/2007, 07:10
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 9 meses
Puntos: 0
ayuda con una consulta de un formulario en php.

buenos días compañeros, tengo el siguiente problema.

tengo una página que me lista el contenido de mi bbdd, para poder ponerlo todo bien he utilizado dos while,

el primero me lista la tabla principal. el segundo while me lista el contenido de una tabla puente que dependen del id_plantilla de la tabla principal.

el problema es que el 2º while tiene esta consulta.

Código PHP:
$sSQL2="select descriptor from principal, descriptor, localizacion, tabla_puente_descriptor 
where principal.id_plantilla = tabla_puente_descriptor.id_plantilla  
and descriptor.id_descrip = tabla_puente_descriptor.id_descrip  
and principal.id_localizacion = localizacion.id_localizacion and principal.id_plantilla ='$row['id_plantilla']'"
;
$result2=mysql_query($sSQL2);
while (
$row=mysql_fetch_array($result2))
{
echo 
$row['descriptor'];

el $row['id_plantilla'] que esta en la consulta lo saco de la primera consulta de sql.



el código de todo es:

Código PHP:
<html>

<head> <title>listado de proyectos</title></head>
<body>
<?
//Conexion con la base
mysql_connect("localhost","daniel","daniel");
mysql_select_db("gestion");

//consulta de las 3 tablas que se quieren visualizar.

$sSQL="select * from principal, descriptor, localizacion, tabla_puente_descriptor 
where principal.id_plantilla = tabla_puente_descriptor.id_plantilla  
and descriptor.id_descrip = tabla_puente_descriptor.id_descrip  
and principal.id_localizacion = localizacion.id_localizacion"
;
$result=mysql_query($sSQL);
while (
$row=mysql_fetch_array($result)){
echo 
"<table border=2> <tr><td>";
echo 
$row['id_plantilla'];
echo 
"</td><td><td></td><td></td></tr>";
echo 
"<tr><td>titulo</td><td>";
echo 
$row['titulo'];
echo 
"</td><td>localización:</td><td>";
echo 
$row['hijo'];
echo 
"</td></tr><tr><td>fecha de inicio</td><td>";
echo 
$row['fecha_inicio']; 
echo 
"</td><td>Fecha fin:</td><td>";
echo 
$row['fecha_fin'];
echo 
"</td></tr><tr><td>Descriptores:</td><td>";
$sSQL2="select principal.id_plantilla, descriptor from principal, descriptor, localizacion, tabla_puente_descriptor 
where principal.id_plantilla = tabla_puente_descriptor.id_plantilla  
and descriptor.id_descrip = tabla_puente_descriptor.id_descrip  
and principal.id_localizacion = localizacion.id_localizacion and principal.id_plantilla ='$row['id_plantilla']'"
;
$result2=mysql_query($sSQL2);
while (
$row=mysql_fetch_array($result2))
{
echo 
$row['descriptor'];

echo 
"</td></tr><tr><td>Descripcion:</td><td>";
echo 
$row['descripcion'];
echo 
"</td></tr></table><br><hr>";
}
?>

</body>
</html>
me da el siguiente error:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\easyphp1-8\www\daniel\listado3.php on line 33

la linea 33 es la siguiente:
Código:
and principal.id_localizacion = localizacion.id_localizacion and principal.id_plantilla ='$row['id_plantilla']'";
creo que es porque no indico bien la variable dentro de la consulta, alguien me puede ayudar, como tengo que escribir la variable dentro de la consulta de sql.

gracias

oskar calvo.
  #2 (permalink)  
Antiguo 07/03/2007, 07:16
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: ayuda con una consulta de un formulario en php.

Prueba en vez de poner comilla simple ='$row['id_plantilla']'"; utiliza comilla doble, asi ="$row['id_plantilla']"";
Saludos oskar.
__________________
->Aprender es un proceso que incluye el error..
  #3 (permalink)  
Antiguo 07/03/2007, 07:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda con una consulta de un formulario en php.

gracias cala932.

al final lo he hecho de otra manera, he "redefinido" la variable $row['id_plantilla']
por otra que he llamado $dato

y ha funcionado perfectamente.

Código PHP:
$dato=$row['id_plantilla'];
$sSQL2="select principal.id_plantilla, descriptor from principal, descriptor, localizacion, tabla_puente_descriptor 
where principal.id_plantilla = tabla_puente_descriptor.id_plantilla  
and descriptor.id_descrip = tabla_puente_descriptor.id_descrip  
and principal.id_localizacion = localizacion.id_localizacion and principal.id_plantilla like '$dato'"
;
$result2=mysql_query($sSQL2);
while (
$row=mysql_fetch_array($result2))
{
echo 
$row['descriptor'].",";

lo que no entiendo es porque con $row['id_plantilla'] he tenido tantos problemas y con $dato a la primera.

por cierto, ahora tengo que mirar como hacer para ver cuando tengo que escribir la coma o cuando no.

Entiendo que es con un if, pero estoy pensando como

gracias chicos.

oskar
  #4 (permalink)  
Antiguo 07/03/2007, 07:53
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: ayuda con una consulta de un formulario en php.

Oskar te refieres a esta linea???:
Código PHP:
echo $row['descriptor'].","
Por que no la colocas directamente asi
Código PHP:
echo $row["descriptor"]; 
Saludos
__________________
->Aprender es un proceso que incluye el error..
  #5 (permalink)  
Antiguo 07/03/2007, 08:09
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda con una consulta de un formulario en php.

Hola Cala932.

me refiero a la linea que indica, la cuestión es que $row['descriptor '] es un listado de descriptores, y quiero separarlos con una coma.

si escribo

Código PHP:
echo $row['descriptor'
me salen los descriptores todos seguidos.
descriptoradescriptorbdescriptorc.

lo que quiero es que me salga
descriptora, descriptorb, descriptorc.

creo que sería if $row['descriptor'] es diferente de nada

imprime una coma,
si $row['descriptor'] es igual a nada termina la sentencia.


un saludo

oskar
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:18.