Foros del Web » Programando para Internet » PHP »

Que estoy haciendo mal??? Consulta sql (select)

Estas en el tema de Que estoy haciendo mal??? Consulta sql (select) en el foro de PHP en Foros del Web. Tengo un archivo llamado registro.php, donde inserto los datos de los usuarios, una ves que los inserta lo redirecciona a un archivo llamado uploadfoto: Código: ...
  #1 (permalink)  
Antiguo 04/09/2006, 15:31
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Que estoy haciendo mal??? Consulta sql (select)

Tengo un archivo llamado registro.php, donde inserto los datos de los usuarios, una ves que los inserta lo redirecciona a un archivo llamado uploadfoto:

Código:
echo "<script>document.location.href='uploadfoto.php?nick=$nick';</script>\n";
pasandole la variable nick, en el archivo uploadfoto, con un get tomo la variable nick, para luego realisar una consulta sql y tomar el id del respectivo usuario:

Código:
require_once("../config/conex.php");
$link=Conectarse(); 

$nick=$_GET[nick];

echo $nick;

$result=mysql_query("select * from usuarios where nick='$nick'");
$res=mysql_query($q,$link);
$cant=mysql_affected_rows($link);
if ($cant>0) {
	//significa que hay filas q recuperar, entonces las recuperas 
	$r=mysql_fetch_array($res);
	$id_usuario = $r["id"];
}

echo $id_usuario;
El problema esta en que al nick lo toma correctamente (puse dos echos para saber donde estaba el problema), pero no funciona la consulta sql por lo visto, los campos estan bien escritos.

Es decir echo $id_usuario no devuelve ningun valor.

Saludos.!

Última edición por Snake nS; 04/09/2006 a las 16:03
  #2 (permalink)  
Antiguo 04/09/2006, 15:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Prueba asi:
Código PHP:
$result=mysql_query("select * from usuarios where nick='$nick'") or die( mysql_error() ); 
  #3 (permalink)  
Antiguo 04/09/2006, 15:44
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Pues no estoy muy seguro pero creo que aquí ahy un error:

$result=mysql_query("select * from usuarios where nick='$nick'");
$res=mysql_query($q,$link);

Deberías de pasarle la consulta al query más o menos así:

$res=mysql_query($result);

Prueba haber wque pasa. Suerte
  #4 (permalink)  
Antiguo 04/09/2006, 15:47
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Perdon, perdon. No se de cual fume hoy no le hagas caso al mensaje anterior. Lo que sí es que no se para que utilizas esta línea:

$res=mysql_query($q,$link);
  #5 (permalink)  
Antiguo 04/09/2006, 15:49
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
creo que el problema esta aqui
Código PHP:
$nick=$_GET[nick]; 
deberia estar asi
Código PHP:
$nick=$_GET['nick']; 
debes de poner las comillas simples 'nick', es por eso que $nick no te devuelve ningun valor
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 04/09/2006, 15:59
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Cita:
Prueba asi:
Nada, no me tiro ningun error.

Cita:
Lo que sí es que no se para que utilizas esta línea:
le indica sobre que conexion trabajar.


Cita:
debes de poner las comillas simples 'nick', es por eso que $nick no te devuelve ningun valor
El valor nick me lo devuelve, el que no me devuelve es $id_usuario

Saludos.
  #7 (permalink)  
Antiguo 04/09/2006, 16:05
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Y si en lugar de:
$r=mysql_fetch_array($res);

Colocas
$r=mysql_fetch_array($result);
  #8 (permalink)  
Antiguo 04/09/2006, 16:08
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
NO sera asi :D

al parecer en esta linea esta el error
Código PHP:
$result=mysql_query("select * from usuarios where nick='$nick'");
$res=mysql_query($q,$link); 
segun entiendo l avariable de referencia no es la indicada, seria asi...
Código PHP:
$result="select * from usuarios where nick='$nick'";
$res=mysql_query($result$link
creo que es ovio el error no
  #9 (permalink)  
Antiguo 04/09/2006, 16:10
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Cambia esto:

Código PHP:
$result=mysql_query("select * from usuarios where nick='$nick'"); 
Por esto otro:

Código PHP:
$q="select * from usuarios where nick='$nick'"

EDITO: Bellenger se me ha adelantado, pero es exactamente lo mismo. Solo que él ha cambiado el nombre de la variable en un sitio y yo en el otro.


Suerte
  #10 (permalink)  
Antiguo 04/09/2006, 16:11
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
ya lo tengo
esto
Código PHP:
$res=mysql_query($result); 
en vez de esta
Código PHP:
$res=mysql_query($q,$link); 
lo que pasa es que estas ejecutando una consulta que no existe "$q"

editado: lo respondieron mientras escribia pero lo importante es que ya te debe de funcionar
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 04/09/2006 a las 16:15 Razón: lo respondieron mientras escribia
  #11 (permalink)  
Antiguo 04/09/2006, 16:59
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 5 meses
Puntos: 4
Bueno un poco recopilando lo que leí y ordenando y corrigiendo errores, pienso que esto te podría ayudar


Código PHP:
<?
require_once("../config/conex.php");
$link=Conectarse(); 

$nick=$_GET['nick'];
//$nick=$_GET[nick];

echo $nick;

$query="select * from usuarios where nick='$nick'";
//$result=mysql_query("select * from usuarios where nick='$nick'");

$result=mysql_query($query,$link);
//$res=mysql_query($q,$link);

if($r mysql_fetch_array($result))
{
    
//$cant=mysql_affected_rows($link);
    //if ($cant>0) {

    //significa que hay filas q recuperar, entonces las recuperas 
    //$r=mysql_fetch_array($res);
    
$id_usuario $r["id"];
    
$nombre_usuario $r["nick"];
}
echo 
$id_usuario."<br />";
echo 
$nombre_usuario;
?>
PD: tienes muchos errores de sintaxis, te recomiendo revisar el manual de php en linea cl2.php.net para que revises ejemplos de funciones y como ocuparlas

saludos
  #12 (permalink)  
Antiguo 04/09/2006, 17:12
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Gracias gente, se me re paso ese error

Ahora lo que me resulta raro, es que sigue sin mostrarme la variable $id_usuario:

Código:
require_once("../config/conex.php");
$link=Conectarse(); 
require_once("funcion_resize.php");

$nick=$_GET['nick'];

echo $nick;

$query="select * from usuarios where nick='$nick'";
$result=mysql_query($query,$link);
if($r = mysql_fetch_array($result))
{
    $id_usuario = $r["id"];
    $nombre_usuario = $r["nick"];
} 

echo $id_usuario;
Sera porque no termina de insertar los datos en la tabla, y la ejecucion del codigo se adelanta?
  #13 (permalink)  
Antiguo 04/09/2006, 17:22
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
a ver, prueba con:

Código PHP:
While($r mysql_fetch_array($result))
{
    
$id_usuario $r["id"];
    
$nombre_usuario $r["nick"];

__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #14 (permalink)  
Antiguo 04/09/2006, 17:29
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
tampoco, sigue en la misma, que raro.
  #15 (permalink)  
Antiguo 04/09/2006, 17:39
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Lo que puedo decirles, es que todo el trabajo es dentro de un frame, no se si tendra algo que ver.
  #16 (permalink)  
Antiguo 04/09/2006, 17:52
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Código PHP:
require_once("../config/conex.php");
$link=Conectarse(); 
require_once(
"funcion_resize.php");

$nick=$_GET['nick'];

echo 
$nick;

$query="select id from usuarios where nick='$nick'";
$result=mysql_query($query,$link);
if(
$r mysql_fetch_row($result))
{
    
$id_usuario $r[0];


echo 
$id_usuario
te lo pongo así porque x q no necesitas todos los campos de tu tabla, no se si existe un campo en tu tabla llamado "id"(supongo que ), utiliza el mysql_fetch_row() ya que es mas rapido que el array y porque solo recuperarás un registro (quiero creer que el nick no se duplica, de no ser así tendras problemas), y si quieres mostrar el nick no es necesario que lo recuperes de la BD ya que lo tienes a disposicion en la variable $nick.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #17 (permalink)  
Antiguo 04/09/2006, 18:11
 
Fecha de Ingreso: octubre-2003
Ubicación: Cerca de una wifi o 3G
Mensajes: 328
Antigüedad: 20 años, 5 meses
Puntos: 4
te recomiendo que instales una herramienta como phpmyadmin o si es en local mysql front u otra, a ciegas es dificil encontrar errores si no sabes o no puedes ver la bd.

lo mas probable es que no estes insertando ningún dato en la bd en el formulario anterior y por eso no existe el id
  #18 (permalink)  
Antiguo 04/09/2006, 20:57
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Cita:
te lo pongo así porque x q no necesitas todos los campos de tu tabla, no se si existe un campo en tu tabla llamado "id"(supongo que ), utiliza el mysql_fetch_row() ya que es mas rapido que el array y porque solo recuperarás un registro (quiero creer que el nick no se duplica, de no ser así tendras problemas), y si quieres mostrar el nick no es necesario que lo recuperes de la BD ya que lo tienes a disposicion en la variable $nick.
No se duplica el nick, tengo una condicion que lo que lo chekea, si lo del nick lo puse porque copie rapido el ejemplo que me habian pegado arriba

Cita:
te recomiendo que instales una herramienta como phpmyadmin o si es en local mysql front u otra, a ciegas es dificil encontrar errores si no sabes o no puedes ver la bd.

lo mas probable es que no estes insertando ningún dato en la bd en el formulario anterior y por eso no existe el id
Estoy usando phpmyadmin, y el registro es insertado, lo chekeo en la bd, no entiendo porque no funciona la consulta, los campos estan bien escritos...
  #19 (permalink)  
Antiguo 04/09/2006, 21:04
 
Fecha de Ingreso: diciembre-2004
Ubicación: Cordoba - Argentina
Mensajes: 503
Antigüedad: 19 años, 4 meses
Puntos: 1
Listtooo se digno a funcionar, como no se... pero funciona.

gracias a todos.

Última edición por Snake nS; 04/09/2006 a las 21:17
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 05:20.