Foros del Web » Programando para Internet » PHP »

Seleccionar de la BD un registro...

Estas en el tema de Seleccionar de la BD un registro... en el foro de PHP en Foros del Web. Un cordial saludo... Tengo la siguiente consulta en php: Código PHP: $usuario  =  $_COOKIE [ 'usuario' ]; $consulta  =  "SELECT * FROM miTabla WHERE usuario = $usuario" ; $resultado  =  mysql_query  ( ...
  #1 (permalink)  
Antiguo 29/07/2008, 14:59
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Seleccionar de la BD un registro...

Un cordial saludo...

Tengo la siguiente consulta en php:

Código PHP:
$usuario $_COOKIE['usuario'];
$consulta "SELECT * FROM miTabla WHERE usuario = $usuario";
$resultado mysql_query ($consulta) or die ('Query failed: ' mysql_error()); 
Aprovecho que tengo una cookie dentro de una sesión para que me la traiga con una igualdad desde la base de datos pero me genera el siguiente error:

Código PHP:
Query failedUnknown column 'pepito' in 'where clause' 
Donde 'pepito' es el nombre del usuario.

Desde luego la Cookie cumple su cometido y es posible imprimir el usuario, pero cómo es que no puedo imprimir en la pantalla otra información del mismo y se genera ese error?

Gracias por mil por vuestra ayuda.

Saludos!...
__________________
Andrew :P
  #2 (permalink)  
Antiguo 29/07/2008, 15:04
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: Seleccionar de la BD un registro...

Prueba con esto:
Código PHP:
<?
$tablaname
="miTabla";
$usuario $_COOKIE['usuario']; 
$resultado mysql_query("SELECT * FROM" $tablaname "WHERE usuario='$usuario'") or die ('Query failed: ' mysql_error(););  
?>
Si te ha servido, un karma es agradecido
  #3 (permalink)  
Antiguo 29/07/2008, 15:36
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Seleccionar de la BD un registro...

Tengo el siguiente mensaje de error usando tu codigo:

Código PHP:
Query failedYou have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'FROMmiTablaWHERE usuario='pepito'' at line 1 
Qué puede seguir fallando?
__________________
Andrew :P
  #4 (permalink)  
Antiguo 29/07/2008, 16:15
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Seleccionar de la BD un registro...

el código que te dieron está correcto, solo que recuerda dejar los espacios entre cada palabra

<?
$tablaname="miTabla";
$usuario = $_COOKIE['usuario'];
$resultado = mysql_query("SELECT * FROM " . $tablaname . " WHERE usuario='$usuario'") or die ('Query failed: ' . mysql_error(););
?>
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #5 (permalink)  
Antiguo 29/07/2008, 16:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Seleccionar de la BD un registro...

por eso siempre es mala idea... copiar y pegar, ya que la idea es solo entender... deveras!

si te fijas, no hay espacios en la frase.... del error

Código:
FROMmiTablaWHERE
cuando debería ir así....

Código:
FROM miTabla WHERE
si lo notaste, son espacios los que hacen falta... por favor.... abre los ojos

PDTA: odio, el portapapeles xD
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 29/07/2008, 16:16
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Seleccionar de la BD un registro...

Ok. Resuelto!!!

He echado un vistazo a varios POSTs y he podido extrae la respuesta. Lo más fácil y directo es incluir la misma cookie:

Código PHP:
$consulta"SELECT * FROM miTabla WHERE usuario = '".$_COOKIE['usuario']."'";
$resultado mysql_query ($consulta) or die ('Query failed: ' mysql_error()); 
Luego traigo el resultado a través de un 'while':

Código PHP:
<?php while ($row mysql_fetch_array($resultado)) {
    echo 
$row['nombre_usuario']; } ?>
En resumidas cuentas, una cookie (usuario) llamada 'pepito' la igualo en la base de datos y selecciono los resultados unicos. De estos resultados extraigo lo que necesito. En este caso he extraido el nombre del usuario (nombre_usuario).

Creo que postearé este resultado básico en las FAQS.

Saludos y gracias por la ayuda.

P.D.: Por su puesto que lo he leído bien, y no he copiado y pegado. Esa falta de espacio hace referencia un FROM". y no a un FROM ". con espacio que en nada tendría que incidir en el código. Gracias de cualquier manera por vuestros comentarios.
__________________
Andrew :P
  #7 (permalink)  
Antiguo 29/07/2008, 16:27
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 10 meses
Puntos: 1
Respuesta: Seleccionar de la BD un registro...

Cita:
Iniciado por andrewp Ver Mensaje
Ok. Resuelto!!!

P.D.: Por su puesto que lo he leído bien, y no he copiado y pegado. Esa falta de espacio hace referencia un FROM". y no a un FROM ". con espacio que en nada tendría que incidir en el código. Gracias de cualquier manera por vuestros comentarios.


Ok, cierto en tu solución, es lo mismo de incluir la cookie dentro de la expresión de consulta o como lo estabas manejando al principio, ambos casos son válidos y funcionales.

Lo de los espacios si es muy importante, ya que la expresión que te proporcionaron es correcta pero añadiendoles espacios, ya que el '.' concatena las expresiones y si no existe espacio te generará una sola palabra.

Por ejemplo, no es lo mismo

"hola"."mundo" que "hola " . "mundo",
ya que lo primero genera: "holamundo" y lo segundo "hola mundo"

disculpa la correción.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
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 10:33.