Dos preguntas:
1.- Por que funciona el WHERE en esta consulta? Tengo mysql 5.1
"INSERT INTO $table ('backup') VALUES('$backup') WHERE id='$id'"
2.- Como hago para ingresar un registro en el anteúltimo lugar, en vez de en el último?
| ||||
Respuesta: sintaxis correcta para INSERT Saludos. Primero que todo no puedes hacer un WHERE dentro de un INSERT a no ser que lo manejes con un SELECT.. y por otro lado puedes explicar mejor que es eso de anteúltimo lugar como es la estructura de la tabla para poderte dar una mejor ayuda.. Hasta Pronto
__________________ :.:Nano.:: @nano_hard - Retornando al foro |
| ||||
Respuesta: sintaxis correcta para INSERT Gracias. A lo primero, tengo que buscarle la vuelta. Aun no me llevo bien con el manual, que por cierto dice esto: With INSERT ... SELECT, you can quickly insert many rows into a table from one or many tables. For Mh... por qué no funciona where? Sencillamente quiero insertar algo en el renglon 4, digamos. En cuanto a lo segundo, mi tabla es de 3 columnas: id sections backup Y tiene unos 30 renglones. Yo necesito insertar algo en la fila anterior al 30. Para eso debería contar los renglones? Creo que esto puede servir. Luego le restaría uno. Pero aún no lo pruebo: Select count(*) from `tabla` |
| ||||
Respuesta: sintaxis correcta para INSERT Ah! Ya entendí lo primero. No hay que hacer un insert sino un update, porque el renglon ya existe! UPDATE $table SET backup='$data[0]' WHERE id='$id' |
| ||||
Respuesta: sintaxis correcta para INSERT Saludos.. Si exacto No entiendia para que lo requerias de la forma que decias ya que no se puede eejejeje... las filas se insertan en mysql segun el orden llegan los registros ....
__________________ :.:Nano.:: @nano_hard - Retornando al foro |
| ||||
Respuesta: sintaxis correcta para INSERT Ok. Resuelto el primer punto. Pero y el segundo? Se puede insertar un campo nuevo entre los campos ya existentes? No quiero poner algo al final sino justo antes del final. |
| ||||
Respuesta: sintaxis correcta para INSERT Planteas mal tu pregunta, tienes que pensar que no tiene importancia el lugar donde se inserte un registro, sino que haya un campo por el que puedas ordenar una tabla y obtener cada registro en la posicion que deseas. Un ejemplo de tabla con campos ID, NOMBRE 1-Alberto 2-Jorge 3-Luis 8-Andrea Sacariamos el resultado tal que Código PHP: Pues insertariamos el nuevo tal que 4-Marta Y al hacer la misma instruccion Código PHP: 1-Alberto 2-Jorge 3-Luis 4-Marta 8-Andrea Espero que hayas entendido mi explicacion aunque no sea lo que buscabas jejej |
| ||||
Respuesta: sintaxis correcta para INSERT Ok. Quiero aclarar que yo tengo un campo autoimcrementable, pero que no me importa conservar ese campo como clave para mis renglones. Entonces, teniendo esto (sin numeros salteados): 1.auto 2.casa 3.coche 4.carrito 5.Elena 6.Sencillo Quiero poner algo entre 5 y 6. Consecuentemente , lo que era 6 ahora será 7. Como lo hago? |
| ||||
Respuesta: sintaxis correcta para INSERT Perdón que intervenga, pero tengo la impresión, Mayd, que no comprendes el concepto de clave primaria y menos la aplicación en tu caso. Cuando dices: Cita: eso es simplemente absurdo. Quiero aclarar que yo tengo un campo autoimcrementable, pero que no me importa conservar ese campo como clave para mis renglones. En MySQL un campo auto_increment es por default la clave primaria de la tabla, y por ende no puede ser descartado así nomás. Una tabla siempre debe tener una clave primaria, numérica o no, autoincremental o no, pero es parte de los requerimientos del modelo relacional en que se basan los DBMS. Además, en tu caso un campo de nombre de persona no sirve para establecer una clave primaria porque no cumple con la unicidad de valores, ni siquiera combinado con un apellido. Lo que te trata de explicar Vun es que tanto la numeración del auto_increment, como el orden físico de los registros son totalmente irrelevantes para tu caso, porque lo único que necesitas es tener un campo que pueda ordenarse de acuerdo a lo que necesitas. En otras palabras: No es en cómo insertar los datos en lo que tienes que fijarte, sino en cómo leer los datos que quieres obtener. Para el caso, en las FAQs de MySQL encontrarás dos posts que hablan de los temas referidos a las claves primarias (PK), y uno de ellos en especial, te muestra que, si tu interés es obtener un listado numerado en forma secuencial, ordenado en base a un campo no PK, eso se puede hacer en la consulta, sin por ello estar jugueteando con las inserciones o creando campos innecesarios en la tabla (Numerar registros en base a salida de consulta). Lee ese post fíjate si te sirve.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: sintaxis correcta para INSERT Si, creo que eso es lo que busco. Me sirve. Voy a ver como lo encaro porque de buenas a primera no lo entiendo. Voy a reestructurar la tabla, quitando la columna autoincrementable. Cuando necesite insertar algo en penúltimo lugar, voy a consultar cuantos registros hay ... y luego ya no se. Pero necesito insertar valores siempre en el anteúltimo lugar. En cuanto a la clave primaria: no, no tengo en claro el concepto. Cuando me expresé dije "clave" me refería a pares clave->valor, pero no en la jerga de mysql. |
| ||||
Respuesta: sintaxis correcta para INSERT Cita: Estás perdiendo la perspectiva nuevamente:Cuando necesite insertar algo en penúltimo lugar, voy a consultar cuantos registros hay ... y luego ya no se. Pero necesito insertar valores siempre en el anteúltimo lugar 1) Define cuál es la clave primaria. 2) Renumera en las consultas de forna dinámica. 3) Por sobre todas las cosas: Olvídate de preocuparte dónde mete el nuevo registro MySQL. Eso no existe. Es dominio del DBMS en sí y a tí no tiene que interesarte. Lo único que debe interesarte es que la respuesta del DBMS a una consulta dada tenga los registros correctos y en el orden que tu le digas, numerados de la forma que tu mismo definas. No te olvides que MySQL, Oracle, DB2, SQL Server, Postgre, etc., no son Excel ni dBase IV. El concepto de tablas como lo estás planteando no existe en estos sistemas No es el usuario el que define dónde se inserta un registro, sino el DBMS en base a un conjunto de algoritmos de optimización que no necesitas conocer. Precisamente por eso se dice que el uso de los DBMS es "transparente al usuario": Porque es en esencia invisible al usuario. El cómo hace las cosas, en el 95% de las ocasiones es irrelevante. El otro 5% son los DBA...
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| ||||
Respuesta: sintaxis correcta para INSERT No te lo tomes a mal @mayid, pero deberias dedicar unos días a leer desde inicio que es una base de dato, tablas, campos, claves y relaciones, buscar algun tutorial con unos ejemplos. Un esfuerzo de unos dias, te va a ahorrar muchas horas el resto de tu vida :) |
| |||
Respuesta: sintaxis correcta para INSERT mayid, ¿por qué necesitas insertar registros en el penúltimo lugar? Explica algo más lo que dices en tu post número 3, cuando hablas de tres columnas y 30 renglones, que imagino que son registros. Esa parece tu necesidad, pero, al menos con la información que tengo, no yo soy capaz de comprenderla del todo. |
| ||||
Respuesta: sintaxis correcta para INSERT @gnzsoloyo: Gracias. Segun leo en tu punto 2, se puede manejar una columna numerica en forma dinámica. Eso es lo que quiero aprender a hacer. A esa columna le pondría la clave primaria. Pero no encuentro material de lectura. @Vun: Ya usé tablas mil veces. Voy a seguir buscando tutoriales pero tendrías que saber ponerte en el lugar del otro: en estos días estuve concentrado en temas de PHP y a la par intentando avanzar puntualmente en esto de mysql que planteo. No es tan facil para mi hasta que lo entienda, pero no necesito ser un gran conocedor para desarrollar proyectos. @jurena: Tengo un manual en base de datos. El manual está seccionado en diferentes parrafos (cada párrafo corresponde a un subcapitulo). Pero el último párrafo no es de contenidos del manual sino de controles de usuario. Por eso necesito insertar nuevos párrafos justo antes que el ultimo lugar. Este es el link a las paginas que genero con mysql: http://www.aoi-castellano.com.ar/AoIManual/layout.php . Si se loguean como admin/admin veran que hay un editor de texto a pie de pagina, justo como el que tienen este foro. Y lo que permitiría sería colocar un texto en último lugar, pero antes de los controles "atras" y "adelante". |
| ||||
Respuesta: sintaxis correcta para INSERT Ok. Ya entendí. No se puede hacer lo que necesito solo con mysql. Voy a sacar mi listado con php, en un array, lo voy a organizar como quiero, y voy a volver a insertarlo, previo borrar los contenidos que había. Al principio el estupor de ustedes y la falta de documentación en la web me perdían. Pero siendo que leí una especie de manual básico y no encontré solución, voy a pasar a php. Gracias! |
| ||||
Respuesta: sintaxis correcta para INSERT Cita: No. Equivocado. Se puede hacer perfectamente, pero debes conocer más de bases de datos.Ok. Ya entendí. No se puede hacer lo que necesito solo con mysql. Cita: Aquí es donde falla lo que tu mismo dices: Tengo un manual en base de datos. El manual está seccionado en diferentes parrafos (cada párrafo corresponde a un subcapitulo). Pero el último párrafo no es de contenidos del manual sino de controles de usuario. Por eso necesito insertar nuevos párrafos justo antes que el ultimo lugar. Cita: En realidad, si hace falta que seas un buen conocedor de bases de datos para resolver esto. De serlo sabrías que esto significa que hay al menos tres tablas implicadas: pero no necesito ser un gran conocedor para desarrollar proyectos. Capitulos(Capitulo_id, TituloCap) Temas(Capitulo_id, Tema_id, descripcionTema, Contenido(Capitulo_id, Tema_id, Contenido_id, TestoContenido) Con eso se solucionaría (en una forma simplificada, hay esquemas más complejos según el manual), el problema que te aqueja... Pero para esto hay que conocer un poco más que lo básico de bases de datos y tener en claro el modelo relacional. Finalmente: No estábamos estupefactos, sino desconcertados ante descripciones que difícilmente encajan con el modelo de datos que un DBMS usa, y la tarea final (el manual) es algo que no habías mencionado desde el principio. De haberlo hecho, este post habría tenido como mucho tres o cuatro respuestas, y no tantas... Siempre es conveniente explicar bien el escenario y no hacer preguntas demasiado genéricas, porque estas no conducen a explicaciones adecuadas.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) Última edición por gnzsoloyo; 19/04/2010 a las 08:12 |
| ||||
Respuesta: sintaxis correcta para INSERT Esta buena esa estructura. Mira: mi manual ya estaba estructurado. En html viejo. Yo lo que hice esta semana es migrar el html obsoleto a una base de datos sencilla, con un script automatizado. Voy a ver si puedo escribir un script para estructurar las tablas de manera diferente, pero también me conformo con haber avanzado mucho con la migración. Gracias otra vez! |
Etiquetas: |