Foros del Web » Programando para Internet » PHP »

Se puede usar variable en INSERT INTO...???

Estas en el tema de Se puede usar variable en INSERT INTO...??? en el foro de PHP en Foros del Web. Hola mi pregunta es , Puedo usar una variable en el lugar del campo de la base de datos? ES decir: INSERT INTO tabla (' ...
  #1 (permalink)  
Antiguo 14/05/2009, 16:57
 
Fecha de Ingreso: mayo-2009
Mensajes: 147
Antigüedad: 10 años, 9 meses
Puntos: 1
Pregunta Se puede usar variable en INSERT INTO...???

Hola mi pregunta es , Puedo usar una variable en el lugar del campo de la base de datos?

ES decir:

INSERT INTO tabla (' ¿ $variable_aca ? ') VALUES ('$a')

En es caso de que se pueda, como hado para concatenar texto y a continuacion una variable para conformar el nombre del campo...?

Es decir que por ej. si el campo se llama juego_01 , yo quiero concatenar el texto juego_ con la variable $xxx que tiene el valor de 01...

ej:

$xxx=01

INSERT INTO tabla ('juego_$xxx') VALUES ('$a')


Eso es a lo que quiero llegar, ya se que está mal expresado, pero lo puse asi pa que me entiendan lo que quiero...

Desde ya muchas grax
  #2 (permalink)  
Antiguo 14/05/2009, 17:03
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 10 meses
Puntos: 19
Respuesta: Se puede usar variable en INSERT INTO...???

ejemplo:

$campo="juego_".$numero;

INSERT INTO tabla ('$campo') VALUES ('$a')
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 14/05/2009, 17:04
 
Fecha de Ingreso: mayo-2009
Mensajes: 147
Antigüedad: 10 años, 9 meses
Puntos: 1
ok gracias capo...

Hola amigos, me pasa lo siguiente: cuando quiero guardar datos en la base de datos por medio de la sig funcion

INSERT INTO publica4 ('$red2') VALUES ('$red')

Me tira el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''red_01') VALUES ('111')' at line 1


Dice algo de la line 1, pero en mi codigo php en la linea 1 no hay nada, osea que empieza el codigo en la linea 2, ahí en la linea 2 es donde está la etiqueta <?php ahí empieza el codigo...


Desde ya muchas grax...

Última edición por GatorV; 16/05/2009 a las 20:34
  #4 (permalink)  
Antiguo 14/05/2009, 23:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Respuesta: Error al enviar datos... (Ayuda)

El error es en tu consulta, no en tu codigo PHP, el problema si te fijas es que tienes dos comillas simples, haz una impresion de tu consulta para que veas como se esta generando.

Saludos.
  #5 (permalink)  
Antiguo 14/05/2009, 23:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 147
Antigüedad: 10 años, 9 meses
Puntos: 1
Perdon por mi ignorancia, pero Que es una consulta??? donde la busco? en la base de datos?




OKOKO okOk ya la encontre, ya la pego aca.. perá

Bueno realmente no se como hacer una consulta, lo que hice fue pega el codigo INSERT INTO publica4 ('$red2') VALUES ('$red') en la ventana de la consulta de la base y me tiró el mismo error....

Lo que quiero hacer es lo sig:

Tengo un formulario deplegable y varios campos de texto y un boton.

Código HTML:
<form  action="guarda_en_db.php" method="post">
		  
            <br />
			  <table width="445" height="93" border="0" cellpadding="0" cellspacing="0">
			  
			  <tr>
			 
			 <td width="139" height="22">  Ciudad&nbsp;</td>
			 <td width="306">
			   <div align="left">
			     <input type="text" name="ciudad" id="label2" size="20" />
			     <br />
			     </div></td></tr>
			  
			  <tr>
			 <td height="27">  Apellido&nbsp;</td>
			 <td> 
			   <div align="left">
			     <input type="text" name="apellido" id="pass"size="20"  />
			     <br />
			     </div></td>
			 </tr>
			 
			 
			 <tr>
			  <td height="22">Nombre&nbsp;</td>
			  <td>
			    <div align="left">
			      <input type="text" name="nombre" id="label2" size="20" />
			      <br />
			      </div></td></tr>
			  <tr>
			  <td height="22"> Pais&nbsp;</td>
			  <td>
			    <div align="left">
			      <input type="text" name="pais" id="pass"size="20"  />
			      <br />
			      </div></td></tr>
				  <tr>
			  <td>Seleccionar letra</td>
			  <td> 
			    <div align="left">
			      <select name="select" >
				  <option value="" selected="selected">Seleccionar</option>
				  
		  <option value="01">aaaaaaaaaa</option>
          <option value="02">bbbbbbbbbb</option>
          <option value="03">cccccccccc</option>
          
          
			        </select>
			        </div></td>
			  </tr>
			  </table>
			  <input type="submit" name="b3" value="Publicar"   />
			  </form> 


Por otro lado tengo el codigo php que es el archivo guarda_en_db.php :

Código PHP:
<?php

$Ciudad
$_POST['Ciudad'];
$apellido$_POST['apellido'];
$nombre$_POST['nombre'];
$pais$_POST['pais'];
$select$_POST['select'];
$fecha date('d-m-Y');

$var2=$select;
$Ciudad2="Ciudad_".$var2;
$apellido2="apellido_".$var2;
$nombre2="nombre_".$var2;
$pais2="pais_".$var2;
$fecha2="fecha_".$var2;

echo 
$select;
$fecha date('d-m-Y');

if (
$select==$var2)


{

$bd=mysql_connect("sql","fees0","xxxxxx");
mysql_select_db("fees0_3363757_base");


$sql="INSERT INTO publica4 ('$Ciudad2','$apellido2','$nombre2','$pais2','$fecha2') VALUES ('$Ciudad','$apellido','$nombre','$pais','$fecha')";
                            
mysql_query($sql,$bd)or die (mysql_error());
 
}





?>

En la base de datos tengo una tabla llamada publica4 y los campos llamados

- ciudad_01
-apellido_01
-nombre_01
-pais_01
-fecha_01

- ciudad_02
-apellido_02
-nombre_02
-pais_02
-fecha_02

- ciudad_03
-apellido_03
-nombre_03
-pais_03
-fecha_03


entonces , por medio de $select= $_POST['select']; estoy recuperando el valor de la opcion que elija el usuario ej. si elige aaaaaaaa el valor será 01, ese valor lo hago = a la variable $var2 , asi ($var2=$select),
en este caso $var2 tendría un valor de 01, entonces mediante otra variable llamada $Ciudad2 que tiene un valor de $Ciudad2="Ciudad_".$var2; concatenando el texto ciudad_ y la variable $var2 estoy formando el nombre del campo de la base de datos ya que dicho campo se llama ciudad_01 .

La pregunta es la siguente: se puede reemplazar de alguna manera los nombres de los campos por variables? por ejemplo envés de poner esto:

Código PHP:
INSERT INTO publica4 (Ciudad2apellido2nombre2pais2fecha2VALUES ('$Ciudad','$apellido','$nombre','$pais','$fecha')"; 
Yo quiero poner esto:

Código PHP:
INSERT INTO publica4 ('$Ciudad2','$apellido2','$nombre2','$pais2','$fecha2'VALUES ('$Ciudad','$apellido','$nombre','$pais','$fecha')"; 
donde el nombre de los campos es creado en forma interactiva, por decirlo de alguna manera, por el usuario, ya que al elegir una opcion del form desplegable le está cambiendo el nombre al campo , pues si eligiese la opcion bbbbbb su valor sería 02 entonces los datos se guardarían el el campo ciudad_02, me explico?.....

Espero haberme expresado bien para que me hallan entendido..
Desde ya muchas gracias...

Última edición por GatorV; 16/05/2009 a las 20:41
  #6 (permalink)  
Antiguo 15/05/2009, 01:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 10 meses
Puntos: 2534
Respuesta: Se puede reemplazar el nombre de campo por una variable ???

naturalmente es posible.... !!!

como te puedes dar cuenta, ya has usado variables en cualquier tipo de lugares, funciones, argumentos, cadenas, etc...

de hecho, es algo que hacemos a menudo... de ahí, que lo que planteas es obvio, ¿no te habías dado cuenta??


osea, simplemente es usar variables como nombre de columnas... para que tomen el valor creado... ya lo estas haciendo con los VALUES()

¡¡así funcionan las variables!!!

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 15/05/2009, 01:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 147
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Se puede reemplazar el nombre de campo por una variable ???

el problema es que ma tira un error parecido a este:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''red_01') VALUES ('1')' at line 1

y no se que es...
  #8 (permalink)  
Antiguo 15/05/2009, 01:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 10 meses
Puntos: 2534
Respuesta: Error al enviar datos... (Ayuda)

lo que sucede es que debes NO usar comillas para los nombres de las columnas...

Código:
INSERT INTO
tabla(columna)
VALUES('valor')
una consulta es sintaxis SQL, si, lo que se usa para leer, insertar, borrar y actualizar datos en la base de datos... a eso se le llama consulta!

de hecho, si separas la consulta en varias lineas es mejor... ya que el error te dice la linea precisa del error de sintaxis, no del PHP... sino de la consulta (query)

por favor, si desconoces del tema... busca en el foro y/o lee una buena referencia de SQL antes...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 15/05/2009, 01:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 147
Antigüedad: 10 años, 9 meses
Puntos: 1
Desacuerdo

Cita:
Iniciado por pateketrueke Ver Mensaje
lo que sucede es que debes NO usar comillas para los nombres de las columnas...

Código:
INSERT INTO
tabla(columna)
VALUES('valor')
una consulta es sintaxis SQL, si, lo que se usa para leer, insertar, borrar y actualizar datos en la base de datos... a eso se le llama consulta!

de hecho, si separas la consulta en varias lineas es mejor... ya que el error te dice la linea precisa del error de sintaxis, no del PHP... sino de la consulta (query)

por favor, si desconoces del tema... busca en el foro y/o lee una buena referencia de SQL antes...
Vos parece que sos un ser superior, me tratas como si yo fuera un maldito ignorante , de echo lo soy, pero no está bueno que me lo recuerdes a cada rato...man.....

Cita:
Iniciado por By_George Ver Mensaje
ejemplo:

$campo="juego_".$numero;

INSERT INTO tabla ('$campo') VALUES ('$a')

eso está mal

INSERT INTO tabla ('$campo') VALUES ('$a')[/QUOTE]

se escribe sin comillas

INSERT INTO tabla ($campo) VALUES ('$a')[/QUOTE]


Perdí un dia de mi vida gracias a esas fakin comillas....
Igual gracias por contestar....

Última edición por GatorV; 16/05/2009 a las 20:35
  #10 (permalink)  
Antiguo 15/05/2009, 05:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 11 años, 6 meses
Puntos: 7
Respuesta: Se puede reemplazar el nombre de campo por una variable ???

El error que te retorna es porque tienes mal construida la consulta. Comprueba que realmente estás realizando la query correctamente con un echo y verás si está bien.

suerte
  #11 (permalink)  
Antiguo 15/05/2009, 08:39
 
Fecha de Ingreso: mayo-2009
Mensajes: 147
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Se puede reemplazar el nombre de campo por una variable ???

ya lo solucioné el error estaba en las comillas simples


INSERT INTO publica4 ('$Ciudad2','$apellido2','$nombre2','$pais2','$fech a2') VALUES ('$Ciudad','$apellido','$nombre','$pais','$fecha') ";

INSERT INTO publica4 ($Ciudad2,$apellido2,$nombre2,$pais2,$fecha2) VALUES ('$Ciudad','$apellido','$nombre','$pais','$fecha') ";
  #12 (permalink)  
Antiguo 15/05/2009, 09:51
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 10 años, 10 meses
Puntos: 19
Respuesta: Se puede usar variable en INSERT INTO...???

umm perdon fue un error de dedo ni me habia fijado, para la otra ya no te ayudo y no tendras problemas
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
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 12:41.