Foros del Web » Programando para Internet » PHP »

Mysql_fetch_row inválido.

Estas en el tema de Mysql_fetch_row inválido. en el foro de PHP en Foros del Web. Buenos dias a todos, mi problema es el siguiente: tengo un script que actualiza los datos de un usuario en MySQL, tomando un fichero de ...
  #1 (permalink)  
Antiguo 26/02/2009, 09:58
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Mysql_fetch_row inválido.

Buenos dias a todos, mi problema es el siguiente:
tengo un script que actualiza los datos de un usuario en MySQL, tomando un fichero de texto.
el script enq uestion está escrito en php, pero como el problema es con la funcion mysql_fetch_row, decidí postearlo en esta sección.
bueno, el código del programa es el siguiente:
Código:
   1.
      <html>
   2.
              <body>
   3.
                  <form action="" method="post">
   4.
                      <?php
   5.
                          # Get the reCAPTCHA library
   6.
                          require_once('recaptchalib.php');
   7.
       
   8.
                          //CAPTCHA, Anti Bots.
   9.
                          define('PUBLIC_KEY',  '6LffFgUAAAAAAFT4p5WS0p_aXtY5XpUOCxkuqXE6');
  10.
                          define('PRIVATE_KEY', '6LffFgUAAAAAAAbiilEH5JFNamUNA1ng8ZCd-zqi');
  11.
       
  12.
                         
  13.
                          $error = null;
  14.
       
  15.
                         
  16.
                          if ($_POST["recaptcha_response_field"]) {
  17.
                              $response = recaptcha_check_answer(
  18.
                                  PRIVATE_KEY, $_SERVER['REMOTE_ADDR'],
  19.
                                  $_POST['recaptcha_challenge_field'],
  20.
                                  $_POST['recaptcha_response_field']
  21.
                              );
  22.
      //SI EL CAPTCHA ANDA ENTONCES:
  23.
                              if ( $response->is_valid ) {
  24.
                                                      if(isset($_POST['username'],$_POST['password'])) {             
  25.
                                                      $user = $_POST['username'];
  26.
                                                      $pass = $_POST['password'];
  27.
                                                      //PONER UN  
  28.
                                                     
  29.
                                                      //Empieza conteo de variables
  30.
                                                      $archivo = file($user . ".usuario"); $lineas = count($archivo);
  31.
                                                      $ckills = $archivo[1];
  32.
                                                      $cmuertes = $archivo[2];
  33.
                                                      $kills = substr($ckills,6);
  34.
                                                      $deaths = substr($cmuertes,7);
  35.
                                                      require('configuracion.inc');
  36.
                                                      $c = mysql_connect("localhost","root","password")
  37.
                                                      or die("Error: " . mysql_error());
  38.
                                                      mysql_select_db("samp",$c)
  39.
                                                      or die("Error: " . mysql_error());
  40.
                                                      $sql1 = "SELECT user,pass WHERE user=$user";
  41.
                                                      $resultado1 = mysql_query($sql1,$c);
  42.
                                                      if(!resultado) {
  43.
                                                      print("Error!");
  44.
                                                      exit();
  45.
                                                      }                                              
  46.
                                                      $registro = mysql_fetch_row($resultado1);
  47.
                                                      $samppass = $registro[1];
  48.
                                                      if ($samppass == $pass) {
  49.
                                                      $sql2 = "UPDATE usuarios SET KILLS = '$kills', DEATHS = '$'deaths' WHERE user = $user";
  50.
                                                      $resultado = mysql_query($consulta,$c);
  51.
                                                      if($resultado) {
  52.
                                                      setcookie(Loguedo,$user);
  53.
                                                      header(stats.php);
  54.
                                             
  55.
                                                      }
  56.
                                                      } else { print("Las Contraseñas no coinciden."); }
  57.
                                                     
  58.
                                                      }
  59.
       
  60.
                                                     
  61.
                                                     
  62.
                                                     
  63.
                                                     
  64.
                                             
  65.
                                                     
  66.
                             
  67.
                              }
  68.
                              else {
  69.
                                                     
  70.
                                                     
  71.
                                                     
  72.
                                                     
  73.
                                                     
  74.
                                                     
  75.
                                                     
  76.
                                 //ERROR DEL CAPTCHA
  77.
                                  $error = $response->error;
  78.
                              }
  79.
                          }
  80.
                     
  81.
                          # Display the reCAPTCHA challenge. The first time
  82.
                          # through $error will be null.
  83.
       
  84.
                          echo recaptcha_get_html( PUBLIC_KEY, $error );
  85.
                      ?>
  86.
                      <br />
  87.
                     
  88.
                      Ususario: <input type="text" name="username" /><br />
  89.
                      Contraseña <input type="password" name="password" /><br />
  90.
                      <input type="submit" value="submit" />
  91.
                  </form>
  92.
              </body>
  93.
          </html>





y el error que me tira es:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\xampplite\htdocs\SAMP\blackzone\login.php on line 43

Gracias de antemano por su ayuda.
  #2 (permalink)  
Antiguo 26/02/2009, 11:34
Avatar de fermar21  
Fecha de Ingreso: marzo-2004
Ubicación: San Nicolas - Bs. As.
Mensajes: 294
Antigüedad: 20 años
Puntos: 0
Respuesta: Mysql_fetch_row inválido.

Te olvidaste el FROM en la consulta SQL:

Código PHP:
$sql1 "SELECT user,pass WHERE user=$user"
Saludos,
__________________
Fernando Marinzulich
Programador Web (PHP/MySQL/Jquery)
  #3 (permalink)  
Antiguo 26/02/2009, 13:02
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Mysql_fetch_row inválido.

Muchisimas gracias, pero ahora el error es otro.El script toma las variables, las peude imprimir en pantalla, pero no ejecuta la consulta SQL.
Muchas gracias a todos, estoy empezando en php, y a veces tengo dudas.
  #4 (permalink)  
Antiguo 26/02/2009, 13:12
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Mysql_fetch_row inválido.

Intenta esto:

Código php:
Ver original
  1. select user, pass from tabla where user='$user';

Quizás el error esté en que user es un varchar... creo

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 26/02/2009, 13:13
Avatar de ilydiego  
Fecha de Ingreso: febrero-2009
Ubicación: en mi Casa
Mensajes: 71
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mysql_fetch_row inválido.

hola creo que el error es el sigueinte

Código PHP:
                                                      $resultado1 mysql_query($sql1,$c);
  
42.
                                                      
if(!resultado) {  //<-------- aki
  
43.
                                                      
print("Error!");
  
44.
                                                      
exit();
  
45.
                                                      

no se de donde sacaste esa variable si es que es variable o es la variable anterior que declaraste como $resultado1 hchecate eso
  #6 (permalink)  
Antiguo 26/02/2009, 14:00
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Mysql_fetch_row inválido.

Gracias a sus sugerencias reescribí el codigo, tomando la password del archivo, ya que la base de datos para este caso era innecesaria.
Igualmente sigo con el mismo error, tengo la base de datos MySQL completamente configurada, pero no me figuro a donde va el error, ya que no me lo da como errror, aunque no actualiza la tabla.

Código PHP:
  # Get the reCAPTCHA library
                    
require_once('recaptchalib.php');

                    
//CAPTCHA, Anti Bots.
                    
define('PUBLIC_KEY',  '6LffFgUAAAAAAFT4p5WS0p_aXtY5XpUOCxkuqXE6');
                    
define('PRIVATE_KEY''6LffFgUAAAAAAAbiilEH5JFNamUNA1ng8ZCd-zqi');

                    
                    
$error null;

                    
                    if (
$_POST["recaptcha_response_field"]) {
                        
$response recaptcha_check_answer
                            
PRIVATE_KEY$_SERVER['REMOTE_ADDR'],
                            
$_POST['recaptcha_challenge_field'],
                            
$_POST['recaptcha_response_field']
                        );
//SI EL CAPTCHA ANDA ENTONCES:
                        
if ( $response->is_valid ) {
                        
$user $_POST['username'];
                        
$pass $_POST['password'];
                        
$archivo file($user ".usuario"); $lineas count($archivo);
                        
$ckills $archivo[1];
                        
$cmuertes $archivo[2];
                        
$kills substr($ckills,6);
                        
$deaths substr($cmuertes,7);
                        
$filepass $archivo[0];
                        print(
$user);
                        print(
$filepass);
                        
                        
                        if(
$pass $filepass) {
                    
//descomentar algun dia xD    require('configuracion.inc');
                    
$c mysql_connect("localhost","root","password") or die("Error: " mysql_error());
                    
mysql_select_db(samp,$c) or die("Error!" mysql_error());
                    
$r "UPDATE usuarios SET KILLS=$kills, DEATHS=$deaths WHERE USER=$user";
                    
$r mysql_query($query,$c);
                    if (
$r) {
                    print(
"Tus Datos se han actualizado con Éxito!");
                    }
                    
                    } 
                
                    
                    
mysql_close($c);
                        }
                          else {
                        
                        
                        
                        
                        
                        
                        
                           
//ERROR DEL CAPTCHA
                            
$error $response->error;
                        }
                    }
                
                    
# Display the reCAPTCHA challenge. The first time
                    # through $error will be null. 

                    
echo recaptcha_get_htmlPUBLIC_KEY$error ); 
Gracias por su incansable ayuda :D
  #7 (permalink)  
Antiguo 26/02/2009, 14:36
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Mysql_fetch_row inválido.

Cambia esto

Código PHP:
                    $r "UPDATE usuarios SET KILLS=$kills, DEATHS=$deaths WHERE USER=$user";
                    
$r mysql_query($query,$c); 
Por

Código PHP:
                    $r "UPDATE usuarios SET KILLS='$kills', DEATHS='$deaths' WHERE USER='$user'";
                    
$r mysql_query($query,$c) or die(mysql_error()); 
  #8 (permalink)  
Antiguo 26/02/2009, 14:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Mysql_fetch_row inválido.

el error es: query was empty (mysql_error()
  #9 (permalink)  
Antiguo 26/02/2009, 15:31
 
Fecha de Ingreso: febrero-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Mysql_fetch_row inválido.

Muchas gracias comunidad!! ya logré solucionar el error, y todo gracias a ustedes, como muestra de mi agradecimiento recomendarée sta web a todo aquel que me pida un sitio de recursos.

Saludos :D (los estare leyendo ;) )
  #10 (permalink)  
Antiguo 26/02/2009, 15:48
Avatar de atoBeto  
Fecha de Ingreso: abril-2008
Ubicación: B.C.S., México
Mensajes: 35
Antigüedad: 16 años
Puntos: 2
Respuesta: Mysql_fetch_row inválido.

Cita:
Iniciado por pauloco70 Ver Mensaje
el error es: query was empty (mysql_error()
Veo un error en esta parte del código:

Código PHP:
 $c mysql_connect("localhost","root","password") or die("Error: " mysql_error());
mysql_select_db(samp,$c) or die("Error!" mysql_error());
$r "UPDATE usuarios SET KILLS=$kills, DEATHS=$deaths WHERE USER=$user";//Ojo aqui
$r mysql_query($query,$c);//y aquí
if ($r) {
   print(
"Tus Datos se han actualizado con Éxito!");

Le estas mandando una consulta vacía, es decir, en ninguna parte declaraste la variable $query, en su lugar tienes declarada la consulta en la variable $r = "UPDATE ..."

Cambialo por:

Código PHP:
$query "UPDATE usuarios SET KILLS=$kills, DEATHS=$deaths WHERE USER=$user";
$r mysql_query($query,$c); 
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 07:46.