PHP - Duda insert

   
Vista:

Duda insert

Publicado por Lisud (2 intervenciones) el 16/05/2016 11:22:04
Buenos días !

Tengo un problema con un código que estoy intentando desarrollar por aprender php. Verán intento crear un formulario en modo tabla para rellenar con datos sobre proyectos, tareas (una especie de hoja de horas laborales) que obtiene automáticamente el nombre del usuario registrado y saca sus proyectos y tareas disponibles, para que solo tengan que elegir la tarea y el proyecto y añadir las horas empleadas.

El problema viene pues porque tengo un select para añadir las id's de proyecto y tareas pero a la hora de hacer el insert, no coge el valor que se seleccione. El código es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
 
session_start();
include('includes/conexion.php');
 
if(isset($_SESSION['email'])){
 
  $_POST["enviar"] = "";
  if(isset($_POST["enviar"])){
 
    $resultado = $conexion->prepare ( "SELECT nombre, apellidos FROM usuarios WHERE email=:email" );
    $resultado->bindparam ( ':email', $_SESSION ['email'], PDO::PARAM_STR);
    $resultado->execute();
 
    if($row = $resultado ->fetch()){
      $nombre = $row[0];
      $apellidos = $row[1];
    $nombrecompleto = $nombre . ' ' . $apellidos;
    echo'
    <form action = "" method = "post">
      <table border="1">
            <tr>
            <td >Usuario</td>
            <td> Fecha </td>
            <td>ID Proyecto y Tarea</td>
            <td>Horas</td>
            <td>Comentarios</td>
            </tr>
            <td>
            <strong><div>'.$nombre.' '.$apellidos.' </div></strong>
            </td>
                  <td>
                     <input type=date name="fecha">
                  </td>';
    $res = $conexion->prepare("SELECT PID, ID, 'SUB-ID' from owner WHERE NOMBRE LIKE '%$nombrecompleto%' ORDER BY PID ASC");
    $res->execute();
 
    $aDatos = array();
    while($n = $res->fetch()){
      $aDatos[] = $n;
    }
      echo'<td><select name = "ids" id = "ides">';
      foreach($aDatos as $row){
        $pid = $row[0];
        $id = $row[1];
        $subid = $row[2];
        if($subid = 0){
          $subid=0;
        }
        echo '<option value="'.$pid."_".$id."_".$subid.'">';
        echo "PID: ".$pid." - ID: ".$id." - Sub-Id: ".$subid."<br>";
        echo '</option>';
      }
      echo '</select></td>';
 
    if(isset($_POST['fecha'])){
      $fecha = $_POST['fecha'];
    }
    if(isset($_POST['horas'])){
      $horas = $_POST['horas'];
    }
    if(isset($_POST['comentarios'])){
      $comentarios = $_POST['comentarios'];
    }
    echo '<td><input type = "text" name = "horas"/> </td>
          <td><input type = "text" name = "comentarios"/> </td>
          </table>
          <input type="submit" name="enviar" value="Guardar valores">
          </form>';
    $value = $_REQUEST['ides'];
    $explode = explode("_",$value,3);
    $pid = $explode[0];
    $id = $explode[1];
    $subid = $explode[3];
    $r =$conexion-> prepare("INSERT INTO timesheet (nombre, fecha, pid, id, sub_id, Horas, Comentarios) VALUES (:nombre, :fecha, :pid, :id, :subid, :horas, :comentarios)");
    $r ->bindParam(':nombre', $nombrecompleto);
    $r ->bindParam(':fecha', $fecha);
    $r ->bindParam(':pid', $pid);
    $r ->bindParam(':id', $id);
    $r ->bindParam(':subid', $subid);
    $r ->bindParam(':horas', $horas);
    $r ->bindParam(':comentarios', $comentarios);
    $r ->execute();
    }
  }
}
?>

Espero su ayuda y mil gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder