Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

guardar varios campos en mysql

Estas en el tema de guardar varios campos en mysql en el foro de Bases de Datos General en Foros del Web. Como puedo almacenar varios campos en una base de datos de mysql a la vez, estoy utilizando php y el codigo que tengo es el ...
  #1 (permalink)  
Antiguo 25/08/2004, 13:03
 
Fecha de Ingreso: enero-2004
Mensajes: 230
Antigüedad: 20 años, 10 meses
Puntos: 0
guardar varios campos en mysql

Como puedo almacenar varios campos en una base de datos de mysql a la vez, estoy utilizando php y el codigo que tengo es el siguiente

if($link = mysql_connect ("localhost", "root", "password")){//bd sevlocal

$SQL="INSERT INTO usuario values (0,'".$_POST['inputarea1']."'0,0,0,0,0,0,0) ";
$SQL="INSERT INTO usuario values (0,'".$_POST['Nombre']."' ,0,0,0,0,0,0,0) ";

if(mysql_db_query("prueba",$SQL)) echo "Si"; else echo "No";
$SQL="select id_us from usuario where direccion_usuario='".$_POST['inputarea1']."' "; //bd serv
$SQL="select id_us from usuario where Nombre='".$_POST['Nombre']."' "; //bd serv

if($tabla=mysql_db_query("prueba",$SQL))
{
if($row=mysql_fetch_row($tabla))
{
$id=$row[0];
$SQL="Update usuario set ";$sw=0;//serv externo

Cuando hago el query solo almacena el "Nombre" y no asi lo que tengo en direccion_usuario que vendria dado por el inputarea1, si alguien me puede explicar por favor donde estoy cometiendo el error se lo agradeceria en el alma.
  #2 (permalink)  
Antiguo 26/08/2004, 02:01
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 11 meses
Puntos: 0
Hola,
pues si te fijas bien es muy sencillo. Cuando creas las cadenas que contienen las sentencias INSERT a ejecutar, al crear la segunda "machaca" el contenido de esa variable SQL, es decir, inicialmente contiene la primera sentencia SQL pero no la ejecutas y luego cambias el contenido de esa varibla por la segunda sentencia, por eso dices que te almacena solo el nombre.
Cada vez que quieras ejecutar una sentencia, primero creas la cadena y luego la ejecutas, asi:

$SQL="INSERT INTO usuario values (0,'".$_POST['inputarea1']."'0,0,0,0,0,0,0) ";
if(mysql_db_query("prueba",$SQL)) echo "Si"; else echo "No";

$SQL="INSERT INTO usuario values (0,'".$_POST['Nombre']."' ,0,0,0,0,0,0,0) ";
if(mysql_db_query("prueba",$SQL)) echo "Si"; else echo "No";
...

De todas formas, imagino que esos datos que insertas seran del mismo usuario, no?, entonces es mas facil que todo eso, se mete todo en una misma sentencia:

$SQL = "INSERT INTO usuario values(.....".$_POST['inputarea1'].",".$_POST['Nombre'].".......");
if(mysql_db_query("prueba",$SQL)) echo "Si"; else echo "No";

un saludo,
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #3 (permalink)  
Antiguo 26/08/2004, 07:53
 
Fecha de Ingreso: enero-2004
Mensajes: 230
Antigüedad: 20 años, 10 meses
Puntos: 0
Gracias por la pauta una consulta mas, cuanod añado los campos como me explicatse para un mismo usuario mantengo el numero de ceros por numero de campos que tenga o estos los reempalzo por los campos, algo asi:

$SQL = "INSERT INTO usuario values(0,".$_POST['inputarea1'].",".$_POST['Nombre'].",0,0,0,0");
if(mysql_db_query("prueba",$SQL)) echo "Si"; else echo "No";

Gracias
  #4 (permalink)  
Antiguo 27/08/2004, 00:46
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 11 meses
Puntos: 0
Hola de nuevo,
para que evites confusiones y posibles errores, te recomiendo que uses la siguiente sintaxis de la sentencia INSERT:

INSERT INTO tabla (campo1,campo2,campo3) VALUES (valor1,valor2,valor3)

Te explico:
1. despues del nombre de la tabla pones los nombres de los campos (de la tabla) en los que que quieres insertar un valor, puedes ponerlos todos o solo algunos, segun tus necesidades. En este punto tienes que tener cuidado ya que si tienes definido un campo (en la tabla) como NOT NULL y no le das valor en el insert, esta sentencia fallara indicandolo.
2. A continuación pones los valores que se corresponderian con esos campos (en el mismo orden en el que aparezcan los campos relacionados).

Tal y como lo tenias tu implementado no esta mal, pero puede llevarte a errores y/o confusiones, ya que si no pones los campos, se entiende que vas a insertar en todos los campos de la tabla y sera necesario que metas todos los valores ordenados segun la ordenacion de los campos en la tabla. En tu caso no se si era correcto que rellenaras los campos que no necesitaras con 0, ya que no conozco los tipos de los campos definidos en la tabla, pero ,por ejemplo, si algun tipo fuese de tipo varchar o date, o time,etc podria fallar ya que el tipo del campo no coincidiria con el tipo del valor que le estas asignando.

Bueno, creo que eso es todo, espero haberme explicado bien y que te haya ayudado.

un saludo
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
  #5 (permalink)  
Antiguo 27/08/2004, 07:12
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Hay otra razón por la que hacer como te dice puchitol, y es de bastante peso: si necesitas modificar la estructura de tu tabla, no tienes que cambiar todos los insert (en general todas las instrucciones sql) sobre esa tabla, a menos que se vea directamente afectada por la modificación.
Por ejemplo, en tu caso, si añades un campo más a la tabla, tendrías que modificar todas tus sentencias insert para insertar algún dato en ese campo, sino te dará error. Sin embargo, como te pone puchitol no es necesario, salvo que realmente lo necesites por lógica de programación
Un saludo.
  #6 (permalink)  
Antiguo 27/08/2004, 07:33
 
Fecha de Ingreso: enero-2004
Mensajes: 230
Antigüedad: 20 años, 10 meses
Puntos: 0
Gracias a ambos por la explicacion me fue muy servio mucho y queria pedirles un favor mas, si no es mucho abusar de sus conociemientos, como almacena la elecion de un combo box de 4 opciones por elegir a la base de datos?
  #7 (permalink)  
Antiguo 27/08/2004, 08:40
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
No entiendo tu pregunta.
¿Quieres saber como guardar las opciones para un combobox? o ¿cómo guardar el dato elegido de un combobox?.
Sea como sea, lo guardas igual que cualquier otro dato que quieras guardar. Para las opciones del combobox, las tienes en la tabla y para montar la combo las lees y generas el código html.
En cuanto a guardarlo: se guarda igual que cualquier otro dato. Una vez seleccionada una opción es un dato más a guardar que si fuera un text.
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:08.