Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error con mysql_fetch array

Estas en el tema de Error con mysql_fetch array en el foro de PHP en Foros del Web. Hola, mi codigo es este : Código PHP: $user_ID =  get_current_user_id ();      $dni =  $_POST [ 'dni' ];      $secret_key =  $_POST [ 'secret_key' ...
  #1 (permalink)  
Antiguo 26/10/2014, 14:11
Avatar de manunores  
Fecha de Ingreso: enero-2014
Mensajes: 39
Antigüedad: 10 años, 3 meses
Puntos: 0
Error con mysql_fetch array

Hola, mi codigo es este :

Código PHP:
$user_IDget_current_user_id();


    
$dni$_POST['dni'];
    
$secret_key$_POST['secret_key'];



    
$con=mysqli_connect(DB_HOSTDB_USERDB_PASSWORD'colegio') or die('Error al conectar: '.mysql_error());
    
$query=mysql_fetch_array(mysqli_query($con"SELECT * FROM `alumnos` WHERE dni=".$dni));

    if(
$query['clave']==$secret_key){

        
         
            if ( !
current_user_can'edit_user'$user_ID ) )
                return 
FALSE;

            
update_user_meta$user_ID'dni'$_POST['dni'] );
            
update_user_meta$user_ID'secret_key'$_POST['secret_key'] );
    
        echo 
'salio bien';

    }else{
        echo 
'no salio';
    } 
y me tira este error "Warning: mysql_fetch_array() expects parameter 1 to be resource," me ayudarian a solucionarlo?

Gracielas
  #2 (permalink)  
Antiguo 26/10/2014, 14:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error con mysql_fetch array

mysql_fetch_array() no está recibiendo un result, muy probablemente porque la query que ejecuta el mysqli_query() no está obteniendo nada.
Por empezar, yo revisaría si realmente estás obteniendo algo con $_POST['dni']; . Yo sospecharía que allí no llega nada válido, pero como no estás verificando nada en ninguna parte...

Al menos deberías validar cada paso para saber si las cosas se están ejecutando correctamente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/10/2014, 15:22
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: Error con mysql_fetch array

Supongo que en alguna parte antes de este codigo habras puesto:

define("DB_HOST", "localhost"); //o el host que tienes
define("DB_USER", "tu_nombre_usuario_mysql");
define("DB_PASSWORD", "tu_contraseña_mysql");

aunqe y nunca he utilzado constantes para esto ... pero variables
$db_host; etc.

Tambienn mejor separar un poco el codigo para entenderlo mejor

Código PHP:
Ver original
  1. <?php
  2. /*conectar base datos*/
  3. $con=mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, 'colegio');
  4.  
  5. /* verificar la conexión */
  6.     die("Falló la conexión: %s\n", $con->connect_error);
  7. }
  8.  
  9. /* hacer consulta */
  10. $query ="SELECT * FROM `alumnos` WHERE dni='".$dni."'");
  11.  
  12. /* guardar resultado */
  13. $resultado = $mysqli->query($query);
  14.  
  15. /* comprobar si hay alguna coincidencia */
  16. if($resultado && $resultado->rowCount()>0){
  17.  
  18.     /* extraer fila del resultado*/
  19.     $fila = $resultado->fetch();//si tienes mas filas hacer un bucle con while
  20.    
  21.    
  22.    
  23.     //if($query['clave']==$secret_key){ // esto lo que tenias para que funcione se transforma en:
  24.    
  25.     /* comprobar si coincide lo que te mandoaron con lo que tienes */
  26.     if($fila['clave'] === $secret_key){
  27.         echo "Esta ok y el resto de codigo que quieres poner";
  28.     }else{
  29.         echo "Contraseña no valida y/o codigo que quierras";
  30.     }
  31.    
  32.    
  33. }else{
  34.     echo "no se ha encontrado ninguna coincidencia en la base datos";
  35. }
  36. //fin del problema  :)
  37. ?>

lo del fin del problema al final era una broma :) ya que los problemas ... casi nunca no terminan

No se que tipo de interes tendras en la seguridad pero se sugiere siempre usar PDO en vez de mysqli puro para evitar inyecciones.
O al menos chequear todos los datos entrantes usuario pass o sea Todo $_POST $_GET $_COOKIE ...

Última edición por matake; 26/10/2014 a las 15:30
  #4 (permalink)  
Antiguo 26/10/2014, 15:40
Avatar de manunores  
Fecha de Ingreso: enero-2014
Mensajes: 39
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Error con mysql_fetch array

Loco sos un genio, habia errores de sintaxis, pero me solucionaste toda la estructura. Te mando un saludo y gracias por la ayuda
  #5 (permalink)  
Antiguo 26/10/2014, 16:29
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: Error con mysql_fetch array

De nada hombre ... me alegro que esto ha resuelto tu problema.
con lo del genio ... bfff .... nunca se sabe ;) en los siguentes 765425286 mil millones de años ... podra cumplirse ( bueno con un margen de error de dos tres gúgols :))) ); ver link abajo
http://es.wikipedia.org/wiki/G%C3%BAgol

Etiquetas: mysql, select, sql
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 01:11.