| |||
![]() Hola. Tengo un gran problema. Estoy haciendo una aplicación en Dreamweaver para gestionar una base de datos con ASP. Tengo una tabla "Documentos", y otra "Autores". Lógicamente es una relación N:N puesto q un documento puede tener varios autores, por lo que tengo otra tabla "DocAut" que las relaciona con el Id del Documento y el Id del Autor. El caso es que si quiero insertar un nuevo documento, ¿cómo hago para que se inserte en "DocAut" tantos registros como autores seleccione el usuario de la lista múltiple?. He probado con Arraysm pero devuelven los valores separados por comas y cuando selecciono más de un autor me sigue diciendo que los valores de consulta son más que los campos de destino. Estoy desesperado, no hay forma!!, se lo agracedería muchísimo a quién pudiera ayudarme. Gracias. |
| |||
Hola Myakire. ¿A qué respuestas anteriores te refieres? No he encontrado ninguna respuesta todavía, he buscado por todo el foro y ninguna de las preguntas se adapta a lo que yo necesito. Si sabes cómo hacerlo, ¿podrías ayudarme? Muchas gracias. |
| |||
hola para poder insertar datos en dos tabls puedes hacer le asi espero y tecirva Sql2= "Insert Into Usuarios values ('"&Usuario&"','"&CDKey&"','"&Password&"','"&Pregu nta&"','"&Respuesta&"' )" Sql3= "Insert Into Privilegios (CDKey,Usuario,Version) values ('"&CDKey&"','"&Usuario&"','"&Version&"')" bye |
| |||
Muchas gracias por tu interés Ana Alda, pero no es eso lo que quiero. No pretendo insertar datos en dos tablas, sino desde un formulario insertar varios registros en una sola tabla. Hay en select desde el que el usuario selecciona los autores de un documento, y si selecciona 3, se deberían insertar 3 registros, si selecciona 1, sólo un registro, etc. No hay forma de consguirlo, estoy desesperado!! Ciao |
| ||||
Bueno, no pienses que es mala onda ni mucho menos, pero es que si lees las respuestas anteriores te darás cuenta de que de un tiempo para aca algunos usuarios no se conforman con algun tip o algo, sino que casi, casi exigen solución a su problema con código y todo. Sin con lo que veas en por ejemplo, esta liga, no logras hechar a andar tu programa, con gusto te ayudaré. Por que por lo menos ya estaré seguro que le has hecho el intento. Perdona si sientes que soy algo "mamila", y aclaro que esto no es por tí especñificamente, pero ultimamente algunos usuarios estan en un plan de no hacer nada, que la verdad me han estado desaminando en seguir participando en FDW. Saludos ![]() |
| |||
![]() Hola Myakire. Eres un hacha en el foro por lo que veo, eh? jeje. Se agradece muchísimo tu ayuda. Y respecto a tu respuesta anterior te comprendo, la gente se cree que aquí se lo dan todo hecho... Bueno, a lo que voy. El link que me recomendaste ya lo había visto antes, pero el problema es que estoy trabajando con Dreamweaver y el código no lo conozco mucho. De todas formas he conseguido, mediante el FOR..NEXT, reunir los valores de todos los Selects, pero no consigo hacer que los inserte en la base de datos. A carlunchos le dijiste lo siguiente: Bueno, el tener el mismo nombre en los elementos te sirve para hacer operaciones tales como updates, deletes y select. Ejemplos: SQL = "UPDATE tabla set campo = verdadero WHERE ID IN(" & Request.Form("Check") & ")" o bien SQL = "Delete From tabla where ID IN(" & Request.Form("Check") & ")" Pero para los insert no va. Tienes que distingirlos según su nombre: Como ya te hemos mencionado, normalmente, agregandoles un número; o por su índice. Se manejarian mas o menos igual: <% for cnt=1 to CInt(request("cantidad")) if request.form("sel_sino"&cnt)="SI" Then Sql = "insert .... etc, etc" End If next %> De la segunda sería con algo mas o menos asi: <% for cnt=1 to request.form("sel_sino").count if request.form("sel_sino")(cnt)="SI" Then Sql = "insert .... etc, etc" End If next %> Pero no lo entiendo, no sé a qué corresponden los campos que están entre comillas, si son los nombres de los selects, del formulario, de los campos... no sé si lo selects tienen q tener el mismo nombre o no (ahora tengo Autor1, Autor2... Autor4) Bueno, perdona si abuso de tí. Muchísimas gracias. ![]() |
| ||||
A ver FoxM, dime si te he entendido o estoy desvariando: Tienes un formulario, del cual, uno de los campos es una lista múltiple llanada con los registros de 'Autores', dependiendo de cuantos valores elija de dicha lista, serán los registros que se insertarán en la tabla 'DocAut'. ¿Estoy en lo correcto?, si es así prueba con esto: <%..codigo ASP de conexion y creación del recordset Autores%> <form method=post action='graba.asp'> <select name=ListaAutores multiple="multiple"> <%While Not RsAutores.EOF%>> <option value=<%=RsAutores("IdAutor")%>><%=RsAutores("NomA utor")%></option> <% RsAutores.MoveNext Wend %> <select> <!-- Mas código de formulario --> <input type=submit name=submit value='Grabar'></td> </form> y el código que grabe sería mas o menos así: <% ...Código de Conexion(si es otro archivo) vAutores = Request.Form("ListaAutores") vector = split (vAutores,",") for i=0 to UBound(vector) sql = "INSERT INTO DocAut (IdAutor, NomDoc, etc) VALUES ('"&vector(i)&"', '"&request("Nombre del Autor")&"etcetera)" conexion.Execute(sql) Next %> Prueba y me dices. Saludos Última edición por Myakire; 18/08/2004 a las 10:54 |
| |||
Ya lo tengo solucionado. Muchísimas gracias por la ayuda. No me han hecho falta matrices ni nada, solo un IF...THEN diciéndole que si el campo era distinto de NADA que ejecutara la inserción, y en caso contrario nada. Gracias otra vez por le interés. |