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

                  Working...
                  X