Announcement

Collapse
No announcement yet.

insertar datos en otra tabla

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • insertar datos en otra tabla

    Hola, quiero poder guardar unos datos desde un formulario.

    Tengo tres tablas (cliente, ventas, historial):
    Cliente (id_cliente, nombre, seccion)
    Ventas (id_venta, producto, precio, id_cliente)
    historial (id_venta, seccion)

    en el formulario lleno los campos de la tabla venta mas el id del cliente, pero quiero poder guardar en la tabla historial con un onAfterInsert el id_venta (Ventas) y seccion (tabla cliente) pero no me resulta

    help!!!!

  • #2
    Alli en ese evento debe funcionar, cuentanos como estas haciendo la inserccion?

    Comment


    • #3
      Si es en el onafterinsert, recuerda que ahí ya no tienes información sobre los campos del form, por lo que si haces un {id} para la foranea no funcionara.

      Peganos el código del evento que le echemos un vistazo
      /Giuseppe

      Professional Scriptcase Services
      Some Customers opinions

      Comment


      • #4
        me funciona solo con el id_venta, pero no trae seccion de la otra tabla. Inserto el codigo

        $sec="SELECT seccion from cliente WHERE '{id_cliente}'=personal.id_cliente";

        // SQL statement parameters
        $insert_table = 'historial'; // Table name
        $insert_fields = array( // Field list, add as many as needed
        'id_venta' => "'{id_venta}'",
        'seccion' =>"$sec"
        );

        // Insert record
        $insert_sql = 'INSERT INTO ' . $insert_table
        . ' (' . implode(', ', array_keys($insert_fields)) . ')'
        . ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';

        sc_exec_sql($insert_sql);

        Comment


        • #5
          Pero si chequeas los sql los genera bien?

          En el beforeinsert haz [glo_cliente] = {id_cliente};
          En globales define cliente como salida. En afterinsert usa glo_cliente en vez del campo
          /Giuseppe

          Professional Scriptcase Services
          Some Customers opinions

          Comment


          • #6
            El error que tiene es que está asignando a la variable $sec una cadena: $sec="SELECT seccion from cliente WHERE '{id_cliente}'=personal.id_cliente";
            y NO el INTO de la sentencia sql, alli tiener que hacer la consulta correcta a traves de la macro de Scriptcase. para asignarle a la variable el valor correcto a $sec.

            Comment


            • #7
              Originally posted by alvagar View Post
              El error que tiene es que está asignando a la variable $sec una cadena: $sec="SELECT seccion from cliente WHERE '{id_cliente}'=personal.id_cliente";
              y NO el INTO de la sentencia sql, alli tiener que hacer la consulta correcta a traves de la macro de Scriptcase. para asignarle a la variable el valor correcto a $sec.
              Bien cazado, no me dí cuenta, estaba ofuscado con el SELECT inicial jejeje
              /Giuseppe

              Professional Scriptcase Services
              Some Customers opinions

              Comment


              • #8
                lo trate de hacer pero no captura el dato de la otra tabla Cliente, la idea es buscar la seccion de acuerdo al id_cliente y luego insertarla en la tabla historial id_venta y seccion.

                cual seria la macro?

                Comment


                • #9
                  ya lo logre!!!!
                  lo primero utilice la macro de seleccionar campo de otra tabla y luego la macro de insertar registro en otra tabla y funciona de pelos!!

                  Gracias por la ayuda.

                  Comment


                  • #10
                    Buen día yo tengo un problema parecido, en el código que anexo me logra hacer la consulta por ambas condiciones y me hace la inserción del registro pero solo es un registro el que inserta, lo que necesito es pasar todos los registros que cumplan con ambas condiciones pero solo pasa uno, me pueden ayudar? de ante mano les agradezco su tiempo y conocimiento, saludos!

                    //================================================== =============
                    $check_sql = "SELECT cp.IdCursosPromocion, ct.IdCurso, ct.IdContenidoTematico"
                    . " FROM cursos_promocion as cp, contenidotematico as ct"
                    . " WHERE cp.IdCursosPromocion = '" . {IdCursosPromocion} . "' and ct.IdCurso = '" . {NombreCurso} . "'";
                    sc_lookup(rs, $check_sql);

                    if (isset({rs[0][0]})) // Row found
                    {
                    $IdCursosPromocion = {rs[0][0]};
                    $IdCurso = {rs[0][1]};
                    $IdContenidoTematico = {rs[0][2]};
                    }
                    else // No row found
                    {
                    sc_error_message = 'No hay contenido temático disponible';
                    }


                    // SQL statement parameters
                    $insert_table = 'fecha_aplicacion'; // Table name
                    $insert_fields = array( // Field list, add as many as needed
                    'IdCursosPromocion' => "'$IdCursosPromocion'",
                    'IdCurso' => "'$IdCurso'",
                    'IdContenidoTematico' => "'$IdContenidoTematico'",
                    );

                    // Insert record
                    $insert_sql = 'INSERT INTO ' . $insert_table
                    . ' (' . implode(', ', array_keys($insert_fields)) . ')'
                    . ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';

                    sc_exec_sql($insert_sql);

                    //================================================== =============

                    Comment


                    • #11
                      Si alguién esta buscando el código para buscar registros de una tabla y pasarlos a otra tabla aquí les dejo el código en scriptcase:
                      A mi me funciono de esta manera:

                      //================================================== ===================
                      //Buscar los registros de la tabla de "contenidotematico", insertarlos
                      //en la tabla "fecha_aplicacion" para poder anexar la fecha de aplicación
                      //o de evaluación

                      //Consulta para obtener los registros y guardarlos en variables
                      $check_sql = 'SELECT cp.IdCursosPromocion, ct.IdCurso, ct.IdContenidoTematico'
                      . ' FROM cursos_promocion as cp, contenidotematico as ct'
                      . " WHERE cp.IdCursosPromocion = '" . {IdCursosPromocion} . "' and ct.IdCurso = '" . {NombreCurso} . "'";

                      sc_select(rs, $check_sql);
                      if (false == {rs}) // Error while accessing database
                      {
                      sc_error_message('Error while accessing database.');
                      }
                      else
                      {
                      while(!$rs->EOF)
                      {
                      //Almacenar los registros en las variables
                      $IdCursosPromocion = $rs->fields[0];
                      $IdCurso = $rs->fields[1];
                      $IdContenidoTematico = $rs->fields[2];

                      //Parametros de la consulta en SQL para la inserción de registros
                      $insert_table = 'fecha_aplicacion'; // Table name
                      $insert_fields = array( // Field list, add as many as needed
                      'IdCursosPromocion' => "'$IdCursosPromocion'",
                      'IdCurso' => "'$IdCurso'",
                      'IdContenidoTematico' => "'$IdContenidoTematico'",
                      );

                      //Ejecución de la consulta en SQL
                      $insert_sql = 'INSERT INTO ' . $insert_table
                      . ' (' . implode(', ', array_keys($insert_fields)) . ')'
                      . ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';
                      sc_exec_sql($insert_sql);
                      $rs->MoveNext();
                      }
                      $rs->Close();
                      }

                      Comment

                      Working...
                      X