Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Brian1511 en 9 Enero 2014, 23:49 pm



Título: Error en Mysql en sistema de puntos php
Publicado por: Brian1511 en 9 Enero 2014, 23:49 pm
Hola a todos , tenia un tiempo sin conectarme pero , estoy de regreso y pues aqui con un problemon grandisimo!

El problema es este , tengo un sistema de puntos que anterior mente postee aqui por algunos probles que tenia pero ahora de repente me aparece este mensaje a la hora de transferir puntos entre los usuarios!

Esta es una imagen del formulario de envio

(http://i57.servimg.com/u/f57/18/21/81/46/aa1_bm10.jpg)

y este es el error que me tira!

(http://i57.servimg.com/u/f57/18/21/81/46/aa2_bm10.jpg)

Este es el code que uso:

Código
  1.  
  2. <?php
  3.    $con = mysql_connect('host','usuario','contraseña');
  4.    $db = 'nombre_de_la_tabla';
  5.    $sql = 'select * from nomtabla where user_id=' . $_POST["tu_id"] . "'";
  6.    $res = mysql_db_query($db,$sql,$con);
  7.  
  8.    if ($user_1 = mysql_fetch_array($res)){
  9.  
  10.       $puntos_user_1 = $user_1[puntos];
  11.  
  12.    }
  13.  
  14.    $sql = "select * from nomtabla where user_id='" . $_POST["otro_id"] . "'";
  15.  
  16.    $res = mysql_db_query($db,$sql,$con);
  17.  
  18.    if ($user_2 = mysql_fetch_array($res))
  19.  
  20.    {
  21.  
  22.       $puntos_user_2 = $user_2[puntos];
  23.  
  24.    }
  25.  
  26.    if ($puntos_user_1<$_POST["puntos_a_dar"])
  27.    {
  28.  
  29.       echo "Puntos insuficientes";
  30.  
  31.    }else{
  32.  
  33.    $puntos_user_2 = $puntos_user_2 + $_POST["puntos_a_dar"];
  34.  
  35.    $puntos_user_1 = $puntos_user_1 - $_POST["puntos_a_dar"];
  36.  
  37.    $sql = "update puntos set puntos='" . $puntos_user_2 . "' where user_id='" . $_POST["otro_id"] . "'";
  38.  
  39.    mysql_db_query($db,$sql,$con);
  40.  
  41.    $sql = "update puntos set puntos='" . $puntos_user_1 . "' where user_id='" . $_POST["tu_id"] . "'";
  42.  
  43.    mysql_db_query($db,$sql,$con);
  44.  
  45.    echo "Se suman " . $_POST["puntos_a_dar"] . " al usuario con id " . $_POST["otro_id"];
  46.  
  47.    echo "";
  48.  
  49.    echo "Tus puntos quedan ahora asi: " . $puntos_user_1;
  50.  
  51.    }
  52.  
  53.    ?>
  54.  
  55.  


Si alguien pudiera decirme si tengo algo mal se lo agradeceria mucho!
Un saludo y gracias de antemano!


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: Shell Root en 9 Enero 2014, 23:55 pm
No puedo ver las imagenes...


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: engel lex en 10 Enero 2014, 00:02 am
"Deprecated function" es función obsoleta... normalmente se recomienda no usar, comúnmente se descontinuan por razones de eficiencia o seguridad

info aqui
http://www.php.net/manual/es/function.mysql-db-query.php (http://www.php.net/manual/es/function.mysql-db-query.php)

puedes sustituir mysql_db_query por

Código
  1. mysql_select_db($db);//esto necesitas hacerlo solo una vez, recomendado cuando hagas el connect
  2.  
  3. mysql_query ($sql);

pero pendiente porque esas dentro de poco serán obsoletas, deberías ir migrando a MySQLi :P

si quieres solo deshacerte el problema y no te importa nada coloca un @ antes de la función para que no genere errores aunque falle (cuidado con esto)


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: engel lex en 10 Enero 2014, 00:08 am
ya vi el otro error "mysql_fetch_array" lo usas asumiendo que siempre hay un resultado, y el te está diciendo que el resultado es vacio (no puede hacer nada) sabemos que el query devuelve "false" si no obtuvo resultados, entonces, puedes usar algo como

Código
  1. if($res){
  2. if ($user_2 = mysql_fetch_array($res))
  3. //aqui el resto del codigo
  4.  


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: #!drvy en 10 Enero 2014, 00:29 am
Como hay que decirlo...

NO UTILIZAR MYSQL, ESTA OBSOLETA. USAD MYSQLI o PDO.

Citar
This extension is deprecated as of PHP 5.5.0, and is not recommended for writing new code as it will be removed in the future. Instead, either the mysqli or PDO_MySQL
http://www.php.net/manual/en/intro.mysql.php

Saludos


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: engel lex en 10 Enero 2014, 00:35 am
Como hay que decirlo...

NO UTILIZAR MYSQL, ESTA OBSOLETA. USAD MYSQLI o PDO.
http://www.php.net/manual/en/intro.mysql.php

Saludos

no seas dramático! no está obsoleta... aun no sale el PHP 5.5.0 apeeeenas en diciembre salio e. 5.4.23!  ;D


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: #!drvy en 10 Enero 2014, 03:21 am
Citar
no seas dramático! no está obsoleta... aun no sale el PHP 5.5.0 apeeeenas en diciembre salio e. 5.4.23!  ;D

De dramático nada, PDO esta desde 5.1 y mysqli desde 5.0 .. son mejores y están siendo mejoradas.. mysql ha pasado a estar en fase de mantenimiento (no habrá mas mejoras solo mantenimiento). Y, PHP 5.5 ya esta mas que disponible para Win y Linux.. que los repositorios de las distros no estén actualizadas es otro problema :)

(http://i.elhacker.net/i?i=y3QZSXG1SqXche6e4k8DKGVo) (http://i.elhacker.net/d?i=y3QZSXG1SqXche6e4k8DKGVo)

Saludos


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: engel lex en 10 Enero 2014, 03:30 am
drvy  era bromeando :P no aceptas un chistesito! jejeje

incluso mira que la que el está usando era obsoleta en 5.3.0 XD


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: #!drvy en 11 Enero 2014, 04:01 am
drvy  era bromeando :P no aceptas un chistesito! jejeje

incluso mira que la que el está usando era obsoleta en 5.3.0 XD

Yo es que esas cosas no me las tomo a broma... luego cuando los hosts se pasen a 5.5 inundaran el foro a preguntas de porque no funciona mysql_*..

En fin..  :xD

Saludos


Título: Re: Error en Mysql en sistema de puntos php
Publicado por: Brian1511 en 12 Enero 2014, 00:06 am
Hola a todos gracias de verdad por ayudarme y responder tanto , ya entendi lo que me habeis posteado pero como puedo implementar esas lineas que dejo engelx , podias porfavor implementarlo al codigo que deje es que soy muy NOOB en esto y pues solo vi que habia que reemplasar. :P

Gracias una ves mas y un buen saludo a todos!