Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 5 de 5

Tema: insertar datos en tablas relacionadas MySQL

  1. #1
    Esto empieza a ser un vicio... Habitante Avatar de Web-Freelance
    Fecha de Ingreso
    15 sep, 11
    Ubicación
    España
    Mensajes
    603
    Poder de Reputación
    18

    insertar datos en tablas relacionadas MySQL

    Amigo aqui estoy de nuevo. Debo reconocer que no tengo ni pajolera idea de php y mysql jajaja

    Explico lo que quiero porque seguro que hay cien maneras y mejores de hacerlo:

    -tengo 4 tablas relacionadas mediante id_usuario que es autoincrement en la tabla que la tiene como PRIMARY. En las otras 3 tablas lo tengo como INDEX y no es autoincrement. Quiza haya una mejor manera de hacerlo, no lo se.
    -Total que hago un INSERT en la primera tabla, la que tiene id_usuario como PRIMARY y autoincrement.

    Ahora bien, como hago para insertar el resto de datos en el resto de tablas de manera que el id_usuario sea el mismo en todos?

    Gracias y saludos!
    Agradece si te ayudan, que desagradecidos ya sobran.

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,077
    Poder de Reputación
    26
    Hola:

    Lo que hiciste está bien y es la mejor forma de hacerlo (es la mejor forma que yo.

    Ahora bien, como hago para insertar el resto de datos en el resto de tablas de manera que el id_usuario sea el mismo en todos?
    Yo no conozco ninguna manera de hacerlo relativamente automático, o sea, no conozco una forma de hacer que al hacer clic en el formulario (si es que utilizas uno) se inserten todos los datos y se relacionen entre sí automáticamente. Lo más simple es crear una función que haga los INSERT a la que le pases el los datos a insertar. Por ejemplo:

    Código PHP:
    <?php
      $id 
    $_POST['id'];
      
    $data = array( 'nombre_tabla' => array( 'id_usuario, columna1, columna2, columnaN'"$id_usuario, valor1, valor2, valorN" ) );
      
    insert_data$id$data );
        
      function 
    insert_data$data ) {
        
    $return true;
        
    // $data será un array en el que cada índice será
        
    if( is_array$data ) ) {
          foreach( 
    $data as $key => $val ) {
        
    $sql "INSERT INTO $key ($val[0]) VALUES ( $val[1])";
        
    $result mysql_query$sql );
        
    $aff mysql_affected_rows$link ); // $link es el identificador de la conexión
        // $link = mysql_connect( datos... );
        
    if( ! $aff ) {
          echo 
    "No se pudo insertar fila";
          
    $return false;
        }
          }
        }
            
        return 
    $return;
      }
    ?>
    No lo he probado, así que espero te sirva. Lamentablemente las inserciones múltiples no están soportadas por PHP (en SQL sí se pueden hacer):

    Cita Iniciado por Documentación_PHP
    mysql_query() envía una única consulta (múltiples consultas no están soportadas) a la base de datos actualmente activa en el servidor asociado con el link_identifier
    Saludos :D.

  3. #3
    Esto empieza a ser un vicio... Habitante Avatar de Web-Freelance
    Fecha de Ingreso
    15 sep, 11
    Ubicación
    España
    Mensajes
    603
    Poder de Reputación
    18
    Muchas gracias skaparate, pero soy bastante inepto con php y el codigo no lo entiendo muy bien, me hago lios.

    Se me ocurre una forma "mas facil" para mi, digo para mi porque me cuesta entender, jeje.

    Si hago el primer insert en la primera tabla, la que tiene el id_usuario autoincrement y PRIMARY, ¿puedo acto seguido consultar ese ID para después insertar el mismo ID en el resto de tablas? Por ejemplo consultar el ID por el nombre de usuario, que es único.

    Mil gracias ;-)

    Saludos!
    Agradece si te ayudan, que desagradecidos ya sobran.

  4. #4
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,077
    Poder de Reputación
    26
    Claro, eso es justamente lo que debes hacer y luego puedes pasar el array que aparece al comienzo de mi post anterior a la función insert_data.

    Saludos.

  5. #5
    Esto empieza a ser un vicio... Habitante Avatar de Web-Freelance
    Fecha de Ingreso
    15 sep, 11
    Ubicación
    España
    Mensajes
    603
    Poder de Reputación
    18
    Gracias skaparate, ahora me queda mas claro, voy a probar a ver que tal ;-)

    Saludos!
    Agradece si te ayudan, que desagradecidos ya sobran.

Temas Similares

  1. Respuestas: 0
    Último Mensaje: 04/03/2018, 05:15
  2. AYUDA insertar datos php mysql
    Por satic77 en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 3
    Último Mensaje: 31/10/2009, 20:39
  3. como insertar una base de datos MySql
    Por gatonico en el foro Foro General
    Respuestas: 0
    Último Mensaje: 10/03/2009, 17:30

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •