Foros del Web » Programando para Internet » PHP »

Duda con select PHP y MYSQL

Estas en el tema de Duda con select PHP y MYSQL en el foro de PHP en Foros del Web. Buenos dias, tengo un select en el que elijo una subtarea, en dicho select aparece el nombre de la subtarea y del proyecto, pero me ...
  #1 (permalink)  
Antiguo 30/09/2014, 03:42
 
Fecha de Ingreso: septiembre-2014
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Duda con select PHP y MYSQL

Buenos dias, tengo un select en el que elijo una subtarea, en dicho select aparece el nombre de la subtarea y del proyecto, pero me salen los resultados duplicados y mal, les dejo el codigo. Son dos tablas y estan relacionadas por el id_proyecto. Acepto cualquier consejo y ayuda

Código:
    <select title="Es necesario añadir una tarea" required="required" name="tarea" id="tarea">
<?php
$list_tareas = "SELECT p1.* , p2.* FROM tareas AS p1 , proyectos AS p2 ";
        $select_tareas = mysqli_query($conexion, $list_tareas);
        while ($tareas = mysqli_fetch_array($select_tareas)){
            echo "<option value = '" . $tareas['id_tarea'] . "'>Tarea " .  $tareas['nombre_tarea'] . " del proyecto ". $tareas['nombre_proyecto'] ."</option>";
        }
        ?>
  #2 (permalink)  
Antiguo 30/09/2014, 05:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Duda con select PHP y MYSQL

Código MySQL:
Ver original
  1. SELECT p1.* , p2.* FROM tareas AS p1 , proyectos AS p2

Si las tablas no estan bien relacionadas esa consulta podria formulada asi podria generar un producto cartesiano de las dos tablas. Muestranos la estructura de las dos tablas.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 30/09/2014, 07:15
 
Fecha de Ingreso: septiembre-2014
Mensajes: 2
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Duda con select PHP y MYSQL

proyectos

Columna Tipo Nulo Predeterminado Comentarios
id_proyecto int(20) No
nombre_proyecto varchar(120) No
fecha_inicio date No
fecha_entrega date No
id_estado int(11) No
id_progreso int(11) No
descripcion text No
Índices

Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo Comentario
PRIMARY BTREE Sí No id_proyecto 3 A No


proyectos

Columna Tipo Nulo Predeterminado Comentarios
id_proyecto int(20) No
nombre_proyecto varchar(120) No
fecha_inicio date No
fecha_entrega date No
id_estado int(11) No
id_progreso int(11) No
descripcion text No
Índices

Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo Comentario
PRIMARY BTREE Sí No id_proyecto 3 A No
  #4 (permalink)  
Antiguo 30/09/2014, 07:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda con select PHP y MYSQL

Estás posteando dos veces . la misma tabla.
Muestra nos la de TAREAS para ver como se relaciona con PROYECTOS
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 30/09/2014, 07:49
 
Fecha de Ingreso: julio-2012
Mensajes: 15
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Duda con select PHP y MYSQL

El problema es que te falta la condición que las relaciona (on, where, etc..)

Si necesitas solo los proyectos que tengan al menos una tarea, puedes usar:

Código MySQL:
Ver original
  1. SELECT p1.* , p2.* FROM proyectos p inner join tareas t on p.id_proyecto=t.id_proyecto

Si necesitas el listado de proyectos con o sin tareas:

Código MySQL:
Ver original
  1. SELECT p1.* , p2.* FROM proyectos p left join tareas t on p.id_proyecto=t.id_proyecto

saludos

Etiquetas: mysql, select, tabla
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 08:05.