Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]


<?php
    $con 
mysql_connect('host','usuario','contraseña');
    
$db 'nombre_de_la_tabla';
    
$sql 'select * from nomtabla where user_id=' $_POST["tu_id"] . "'";
    
$res mysql_db_query($db,$sql,$con);
     
    if (
$user_1 mysql_fetch_array($res)){
     
       
$puntos_user_1 $user_1[puntos];
     
    }
     
    
$sql "select * from nomtabla where user_id='" $_POST["otro_id"] . "'";
     
    
$res mysql_db_query($db,$sql,$con);
     
    if (
$user_2 mysql_fetch_array($res))
     
    {
     
       
$puntos_user_2 $user_2[puntos];
     
    }
     
    if (
$puntos_user_1<$_POST["puntos_a_dar"])
    {
     
       echo 
"Puntos insuficientes";
     
    }else{
     
    
$puntos_user_2 $puntos_user_2 $_POST["puntos_a_dar"];
     
    
$puntos_user_1 $puntos_user_1 $_POST["puntos_a_dar"];
     
    
$sql "update puntos set puntos='" $puntos_user_2 "' where user_id='" $_POST["otro_id"] . "'";
     
    
mysql_db_query($db,$sql,$con);
     
    
$sql "update puntos set puntos='" $puntos_user_1 "' where user_id='" $_POST["tu_id"] . "'";
     
    
mysql_db_query($db,$sql,$con);
     
    echo 
"Se suman " $_POST["puntos_a_dar"] . " al usuario con id " $_POST["otro_id"];
     
    echo 
"";
     
    echo 
"Tus puntos quedan ahora asi: " $puntos_user_1;
     
    }
     
    
?>





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 (php) [Seleccionar]

mysql_select_db($db);//esto necesitas hacerlo solo una vez, recomendado cuando hagas el connect

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 (php) [Seleccionar]
if($res){
if ($user_2 = mysql_fetch_array($res))
//aqui el resto del codigo
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.

CitarThis 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
Cita de: @drvy en 10 Enero 2014, 00:29 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
Citarno 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
Cita de: engelx 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

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!