Foros del Web » Programando para Internet » PHP »

Donde quedo el error?

Estas en el tema de Donde quedo el error? en el foro de PHP en Foros del Web. Hola amigos: estoy haciendo una consulta a mi bd la cual me tiene que arrojar un resultado he estado usando el siguiente codigo y lo ...
  #1 (permalink)  
Antiguo 28/12/2007, 00:11
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 8 meses
Puntos: 1
Exclamación Donde quedo el error?

Hola amigos:
estoy haciendo una consulta a mi bd la cual me tiene que arrojar un resultado he estado usando el siguiente codigo y lo he cambiado mas de 7 veces y aun me sigue enviando el siguiente mensaje: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource


<?

require_once("conexion.php");
$var_conexion=conectar();
session_start();



if(isset($_POST[btnuser]))
{

$sql=mysql_query("SELECT user FROM Susuarios WHERE pass = " . $_POST["txtusuario"]);
mysql_query($sql,$var_conexion);

while($resultado=mysql_fetch_array($sql)){

echo $resultado["pass"];

}



}
?>
  #2 (permalink)  
Antiguo 28/12/2007, 01:28
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 8 meses
Puntos: 62
Re: Donde quedo el error?

Código PHP:
$sql=mysql_query("SELECT user FROM Susuarios WHERE pass = '" $_POST["txtusuario"]."'"); 
lo mejor es meter el query en una variable y antes de hacer el mysql_query hacer un echo del mismo y si tienes phpmyadmin u otra aplicacion (o en mysql a pelo), probar la sentencia y ahi te dara el error.

Eso es lo que veo en principio.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #3 (permalink)  
Antiguo 28/12/2007, 01:31
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 6 meses
Puntos: 60
Re: Donde quedo el error?

Podria quedar asi..

Código PHP:
<?

require_once("conexion.php");
$var_conexion=conectar();
session_start();



if(isset(
$_POST[btnuser]))
{

$sql ="SELECT user FROM Susuarios WHERE pass = " $_POST["txtusuario"];
$consulta mysql_query($sql,$var_conexion);

while(
$resultado=mysql_fetch_array($consulta)){

echo 
$resultado["pass"];

}



}
?>
Estabas haciendo dos mysql_query uno sin en link de conexión..
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #4 (permalink)  
Antiguo 29/12/2007, 22:26
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: Donde quedo el error?

Humm... no amigo no funciono el codigo la unica correccion que le hice fue:

echo $resultado["user"]; y $consulta = mysql_query($sql,$var_conexion);

pero me sigue dando
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

que hace referencia ha: while($resultado=mysql_fetch_array($consulta)){

uta.... ya ni idea de por donde sera, esta es la pagina por si quieren dar una vuelta: http://201.155.192.116/ram/SEM/olvidar.php
  #5 (permalink)  
Antiguo 29/12/2007, 22:35
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 18 años, 3 meses
Puntos: 223
Re: Donde quedo el error?

hay algo malo en la consulta y por eso falla al ejecutarla. Intenta agregando :

Código PHP:
$consulta mysql_query($sql,$var_conexion);
if ( !
$consulta )
die ( 
mysql_error() ); 
mysql_error() te dirá cual es el problema en el query.

BTW: me pare que no estás encerrando entre comillas el valor de pass
  #6 (permalink)  
Antiguo 29/12/2007, 22:42
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: Donde quedo el error?

creo que esta generando otro erro, le pongo un valor en el campo de texto y creo que lo toma como columna de la BD porque genera el siguiente error:

Unknown column 'sergio' in 'where clause'
  #7 (permalink)  
Antiguo 29/12/2007, 22:57
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 18 años, 3 meses
Puntos: 223
Re: Donde quedo el error?

y cual es la consulta que envías ? un ejemplo específico sirve ;)

Edito: por el error me parece que la consulta que envías es así:

Código:
SELECT user FROM Susuarios WHERE pass =sergio
cuando debería ser:
Código:
SELECT user FROM Susuarios WHERE pass ='sergio'
(nota las comillas)
  #8 (permalink)  
Antiguo 29/12/2007, 23:07
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: Donde quedo el error?

ok, en una campo de texto pongo el nombre de usuario y con la consulta verifico que si el usuario existe entonces solo me arroge el password o viceversa.
  #9 (permalink)  
Antiguo 29/12/2007, 23:19
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: Donde quedo el error?

haber haber.... no habia visto el codigo que me pusiste pero se supone que con:

$sql ="SELECT user FROM Susuarios WHERE pass = " . $_POST["txtusuario"];

toma el valor que se ponga en el campod e texto entonces seria

WHERE pass= "sergio";
  #10 (permalink)  
Antiguo 29/12/2007, 23:28
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: Donde quedo el error?

ONE MORE TIME.... esta cosa creo ke no quiere dar.... ya le puse apostrofe y comillas y con ninguna u otra quiere...
  #11 (permalink)  
Antiguo 30/12/2007, 00:29
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 18 años, 3 meses
Puntos: 223
Re: Donde quedo el error?

Así ?
Código:
$sql ="SELECT user FROM Susuarios WHERE pass = '" . $_POST["txtusuario"] . "'";
  #12 (permalink)  
Antiguo 30/12/2007, 15:02
360
 
Fecha de Ingreso: marzo-2002
Mensajes: 307
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: Donde quedo el error?

Y dodne quedo el error...... quien sabe...!

segun yo esta solucion tiene la misma sintaxis que el codigo que puse desde principio nada mas que agregamos lo del status, asi a simple vista pues es exactamente igual con la unica diferencia de que este si funciona!


if(isset($_POST[btnuser]))
{
$consulta = mysql_query("SELECT pass FROM Susuarios WHERE user='$_POST[txtusuario]' and status=1",$var_conexion);

if (mysql_num_rows($consulta) > 0)
{

while($fila = mysql_fetch_array($consulta))
{
echo 'Tus password es: ';
echo $fila['pass'];
}

}
else
{
echo"
<script >
alert('error');
</script>";
}
}
  #13 (permalink)  
Antiguo 30/12/2007, 19:31
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 6 meses
Puntos: 60
Re: Donde quedo el error?

Bueno, pues parece que no lees bien ni tu propio codigo.. en el anterior tenias dos llamadas a mysql_query.. :s

$sql=mysql_query("SELECT user FROM Susuarios WHERE pass = " . $_POST["txtusuario"]);
mysql_query($sql,$var_conexion);

En fin estos problemas siempre son de sintaxis, de concatenación de las string que le mandamos al mysql, por medio de mysql_query, trata de acostumbrarte a aprender a concatenar bien
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #14 (permalink)  
Antiguo 30/12/2007, 19:45
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 23 años, 3 meses
Puntos: 9
Re: Donde quedo el error?

Mas sencillo:
Código PHP:
 if(isset($_POST[btnuser]))
{
$consulta    mysql_query("SELECT pass FROM Susuarios WHERE  user='$_POST[txtusuario]'  and                 status=1",$var_conexion);
          echo 
mysql_error// <<-- AHI Ve que error te da...
        
if (mysql_num_rows($consulta) > 0)
           {
        
          while(
$fila mysql_fetch_array($consulta))
          {                    
            echo 
'Tus password es:  ';
            echo   
$fila['pass'];
          }
        
        }
        else
        {
            echo
"
            <script >
            alert('error');
            </script>"
;  
        }
      } 
  #15 (permalink)  
Antiguo 30/12/2007, 19:54
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Re: Donde quedo el error?

Pero aparte de lo ya dicho hay errores de entendimiento de SQL al parecer.

Explico un poco como deberias hacer tu codigo.
Código PHP:
require_once("conexion.php");
$var_conexion=conectar();
session_start();

//Si esta seteada la variable btnuser enviada por post
if(isset($_POST['btnuser'])){
    
    
//SELECCIONAR user DESDE Susuarios DONDE la pass sea igual a $_POST["txtusuario"]
    
$sql "SELECT user FROM Susuarios WHERE pass = '".$_POST["txtusuario"]."'";
    
    
/*
    EJECUCION DE QUERY EN BASE DE DATOS
    esto da como resultado un recurso de conexion
    o en otras palabras un "link a la base de datos"
    */
    
$resultado mysql_query($sql);
    
    
/*
    MIENTRAS $campos sea igual al arreglo del link $resultado
    si no hay registros termina el ciclo
    un ejemplo del arreglo seria algo asi: $campos['user']
    */
    
while($campos mysql_fetch_array($resultado)){
        echo 
$campos['user'];
    }

Tus errores:
Código PHP:
require_once("conexion.php");
$var_conexion=conectar();
session_start();

//si una variable en post no lleva comillas simples o dobles ($_POST['btnuser'])
//te arroja un warning si tienes la opcion de mostrar errores
if(isset($_POST[btnuser])){
    
//si un campo es de tipo texto, siempre lleva comillas (pass = '".$_POST["txtusuario"].'")
    
$sql=mysql_query("SELECT user FROM Susuarios WHERE pass = " $_POST["txtusuario"]);
    
//la ejecucion de los datos de una consulta, siempre debe ir a una variable
    //($miConexion = mysql_query($sql,$var_conexion))
    //y no es necesaria la conexion a la base de datos que supongo tienes hecha en $var_conexion
    //($miConexion = mysql_query($sql))
    
mysql_query($sql,$var_conexion);
    
//mysql_fetch_array() trabaja sobre la variable de ejecucion de la consulta
    //no sobre la consulta (mysql_fetch_array($miConexion))
    
while($resultado=mysql_fetch_array($sql)){
        
//Nunca pediste en el SQL que pass viniera en los datos
        //para eso debes poner esta query "SELECT user,pass FROM Susuarios WHERE pass = '".$_POST["txtusuario"].'"
        
echo $resultado["pass"];
    }

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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 22:08.