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

Una pregunta fácil

Estas en el tema de Una pregunta fácil en el foro de Bases de Datos General en Foros del Web. Alguien sabe la forma de poder hacer esto en una única línea de código: // Inicialización de variables. $user = $_POST["usuario"]; $nombre = $_POST["nombre"]; $apellidos ...
  #1 (permalink)  
Antiguo 27/05/2009, 06:16
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Una pregunta fácil

Alguien sabe la forma de poder hacer esto en una única línea de código:

// Inicialización de variables.
$user = $_POST["usuario"]; $nombre = $_POST["nombre"]; $apellidos = $_POST["apellidos"]; $email= $_POST["email"]; $direccion = $_POST["direccion"]; $localidad = $_POST["localidad"]; $codigoPostal= $_POST["codigoPostal"]; $provincia = $_POST["provincia"]; $pais = $_POST["pais"]; $telefonoFijo = $_POST["telefonoFijo"]; $movil= $_POST["telefonoMovil"];

//Consulta a la base de datos.
$query= "INSERT INTO usuarios (usuario, clave, nombre, apellidos, email, direccion, localidad, codigoPostal, provincia, pais, telefonoFijo, movil) VALUES ('$user','$pass1','$nombre','$apellidos','$email', '$direccion', '$localidad', '$codigoPostal', '$provincia', '$pais', '$telefonoFijo', '$movil')";

Todavia no entiendo muy bien el tema de las comillas, estaría genial si alguien me lo explica con detenimiento, se que por ejemplo si empiezas con comillas dobles, si quieres volver a usarlas debes usar simples, pero en el caso de que necesites como aqui concatenar 3 veces el uso de comillas...

Gracias por adelantado.
  #2 (permalink)  
Antiguo 27/05/2009, 06:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 19
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Una pregunta fácil

Las comillas se usan para establecer cadenas de caracteres que se van a grabar en la base de datos tal y como las hayas escrito.

Ejemplo de cadenas de caracteres:

'Hola como estas'
'Soy guapo'
'El barcelona ganara la champions'

En tu ejemplo las comillas que hay en el INSERT tienes que quitarlas porque lo que tu quieres almacenar en la base de datos es el valor que contienen las variables: $user, $nombre, $apellidos....

Tu lo que quieres que se grabe en la base de datos es el codigo del usuario, su nombre, su apellido, su email, etc.

Si dejas las comillas lo que se va a grabar en la base de datos va a ser:
'$user'
'$nombre'
'$apellidos'

y eso no te interesa.

Un saludo,
  #3 (permalink)  
Antiguo 27/05/2009, 07:05
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Una pregunta fácil

Estimados, bueno el amigo jmmoya te explico el uso de comillas, ahora te falto comentar cual era el problema con la query.

Adios.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #4 (permalink)  
Antiguo 27/05/2009, 07:24
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Una pregunta fácil

No es correcto.

La sentencia funciona correctamente, y en mi base de datos MySql los datos del usuario se añaden bien, y no como comentas.

La respuesta a si se podría hacer con una sóla línea por tanto sigue sin encontrarse

Muchas gracias no obstante por vuestra ayuda :)


Además lo que quería decir al exponer que me gustaría que me explicaran el tema de las comillas, es que me gustaría saber, porque en los campos Values se deben introducir las variables entre comillas para que funcionen, y en general, cual es la regla que se debe respetar en este sentido.

Última edición por TobyMudito; 27/05/2009 a las 07:26 Razón: Mas información
  #5 (permalink)  
Antiguo 27/05/2009, 07:29
Avatar de BlueSkull  
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
Respuesta: Una pregunta fácil

Cita:
Iniciado por TobyMudito Ver Mensaje
No es correcto.

La sentencia funciona correctamente, y en mi base de datos MySql los datos del usuario se añaden bien, y no como comentas.

La respuesta a si se podría hacer con una sóla línea por tanto sigue sin encontrarse

Muchas gracias no obstante por vuestra ayuda :)


Además lo que quería decir al exponer que me gustaría que me explicaran el tema de las comillas, es que me gustaría saber, porque en los campos Values se deben introducir las variables entre comillas para que funcionen, y en general, cual es la regla que se debe respetar en este sentido.
Estimado, no se a quien le estas contestando, ahora no es correcto que?.

Adios.
__________________
"Incluso las torres más altas empiezan en el suelo."
"Sé Ágil..."
StreamWriter
  #6 (permalink)  
Antiguo 27/05/2009, 07:42
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Una pregunta fácil

Tu lo que quieres que se grabe en la base de datos es el codigo del usuario, su nombre, su apellido, su email, etc.

Si dejas las comillas lo que se va a grabar en la base de datos va a ser:
'$user'
'$nombre'
'$apellidos'


Eso no es correcto, en la primera respuesta que me ponen, me comentan eso, pero eso no es así, los datos se graban correctamente, la consulta que yo pongo funciona bien. Lo que quiero saber es como podría ponerse en una única frase, es decir, no tener que crear variables auxiliares.
  #7 (permalink)  
Antiguo 27/05/2009, 07:50
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Una pregunta fácil

No es necesario que declares las variables en la inserción. Puedes hacer uso de ellas directamente.

Código mysql:
Ver original
  1. $cadena="insert into tabla values('".$_POST['usuario']."','".$_POST['password']."',otros_campos)";

Todo es cuestión de contatenar bien codigo php dentro de una cadena.

De esta forma evitas la declaración de cada variable que recibes por post.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 27/05/2009, 07:59
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Una pregunta fácil

Increíble, creo que jamás se me habría ocurrido, gracias Huesos52, aunque sinceramente no le veo mucha lógica al comillas simples + comillas dobles + punto...

A ver si me lo pudieras explicar el porqué se hace asi.
  #9 (permalink)  
Antiguo 27/05/2009, 08:08
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Una pregunta fácil

claro tobumudito..

Cuando abres la comilla sencilla, es cuando requieres ingresar un valor que es date o varchar, luego abres una comilla doble para decirle que cierre la cadena que empezaste.
$cadena = "insert into tabla values(' "
Es aca donde se concatena con el punto(.) el valor de php que necesitamos. Cuando termines de concatenar, poner nuevamente el punto(.)
$cadena = "insert into tabla values(' ".$valoresphp.
En este momento es necesario reabrir la cadena que antes habias cerrado con comillas dobles. En este punto ya haz retomado la cadena que habias cerrado cuando abriste las comillas simples del parámetro y continuas con tu sentencia.
$cadena = "insert into tabla values(' ".$valoresphp."',otros_vaores)";

Si lo que necesitas ingresr es un valor numerico, te sobran las comillas simples... quedaría de este modo:
$cdena = "insert into tabla values(".$numero_en_php.");"

Espero que hayas entendido.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #10 (permalink)  
Antiguo 27/05/2009, 08:18
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Respuesta: Una pregunta fácil

Fenomenalmente explicado, muchísimas gracias.

Lo que me da que pensar ahora es el como procede PHP a la hora de entender esa sentencia dado que hasta el primer punto se encuentra con una comilla inicial doble + una simple + nuevamente una doble.

Imagino que primero concatenará todos los trozos de la cadena eliminando las comillas dobles y luego procesará la cadena como tal con las comillas simples que le queden.

Muchísimas gracias nuevamente, perfectamente explicado y además con el detalle de los diferentes tipos de datos (date, varchar) que desconocía totalmente.

Saludos!!!
  #11 (permalink)  
Antiguo 27/05/2009, 08:30
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Una pregunta fácil

Cita:
Lo que me da que pensar ahora es el como procede PHP a la hora de entender esa sentencia dado que hasta el primer punto se encuentra con una comilla inicial doble + una simple + nuevamente una doble.
Con un ejemplo mas sencillo del modo de operación de php.

$numero = 8;
1.
echo $numero; //Te imprime 8.

2.
echo "Este numero es el ".$variable; //Te imprime este numero es el 8.

3.
echo "hay ".$numero." personas aca"; //Te imprime hay 8 personas aca

para el caso de las sentencias sql es totalmente igual. Necesitamos seguir ejecutando en una misma sentencia (Como el ejemplo 3) varias variables.
Las comillas sencillas, son de acuerdo al tipo de dato que estés usando.

$cadena="insert into tabla values('".$_POST['usuario']."','"

Fijate que lo que esta en negrilla es lo que debe ir dentro de la cadena. El cierre de la comilla sencilla se da, en el momento en que se vuelve a abrir la cadena.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #12 (permalink)  
Antiguo 27/05/2009, 09:29
TobyMudito
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Una pregunta fácil

Sencillamente fenomenal, gracias de nuevo, lo entendí muy bien, gracias a ustedes este mundo se hace mucho mas agradable.
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 00:37.