Ayuda PHP urge

deskpro123 Seguir

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
Hola a todos, vendo a pedirles ayuda sobre PHP...

Miren, me pasa lo siguiente, tengo un script POSTBACK, osea me devuelve informacion de otra pagina web...

Entonces funciona de la siguiente manera:

Cuando se hace X accion en la otra pagina, llama a mi web y guarda un registro de la siguiente manera:

La otra web llama a mi web asi:
http://miweb.com?script.php?fecha=2014-08-15&valor=1

Entonces en el script.php tengo algo como esto:

PHP:
$query=mysql_query("SELECT * FROM registros WHERE fecha = '".$fecha_get."'");

$num_rows = mysql_num_rows($query);

if ($num_rows > 0) {
mysql_query("UPDATE registros SET valor=valor+'".$valor_get."' WHERE  fecha = '".$fecha_get."' limit 1");
}
else {
mysql_query("INSERT INTO registros (valor, fecha) VALUES ('".$valor_get."' , '".$fecha_get."')");
}

EL PROBLEMA:

El problema es que si ejecuto yo el script desde mi explorador, me crea al registro con dicha FECHA y cada vez que doy a reflesh lo actualiza la variable VALOR exitosamente, como debe de funcionar correctamente....

Peroooo cuando la otra web hace la llamada, aunque la fecha que indico en la variable FECHA exista, no me actualiza VALOR en la base de datos sino que crea un registro nuevo, ejemplo:

Lo que deberia hacer al llamar MI URL 3 veces:

http://miweb.com?script.php?fecha=2014-08-15&valor=2

Y en la base de datos deberia aparecer asi:
FECHA:2014-08-15 - VALOR: 6


Lo que realmente hace
FECHA:2014-08-15 - VALOR: 2
FECHA:2014-08-15 - VALOR: 2
FECHA:2014-08-15 - VALOR: 2

SERA QUE LA FECHA QUE ME ENVIA LA OTRA WEB TIENE ALGO DIFERENTE?

Espero me puedan ayudar y si hay una forma mas moderna de hacerlo seria exelente.

[MENTION=9679]cicklow[/MENTION] , amigo , sabes algo a que se puede deber eso?

Un saludo a todos
 

adresc

Dseda
Verificación en dos pasos activada
¡Ha verificado su Paypal!
Desde
17 Dic 2011
Mensajes
1.183
debe ser en la comparación de la fecha, qué tipo de campo es la fecha?
 

S3RGI0

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Jul 2014
Mensajes
84
Haber intenta con:

Insertar CODE, HTML o PHP:
mysql_query("UPDATE registros SET valor=valor+".$valor_get." WHERE  fecha = '".$fecha_get."' limit 1");

Y verifica que el formato de la fecha registrado en la base de datos coincida con el eviado por GET

Salu2!
 

deskpro123

Iota
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
2.014
debe ser en la comparación de la fecha, qué tipo de campo es la fecha?

Es un campo varchar(10), si eso pense, que cuando compara la fecha no la ve igual ....

- - - Actualizado - - -

Haber intenta con:

Insertar CODE, HTML o PHP:
mysql_query("UPDATE registros SET valor=valor+".$valor_get." WHERE  fecha = '".$fecha_get."' limit 1");

Y verifica que el formato de la fecha registrado en la base de datos coincida con el eviado por GET

Salu2!

Crees que pueda ser por esas 2 comillas?
 

S3RGI0

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
9 Jul 2014
Mensajes
84
Si, por que asi das a entender que es una cadena, si no te funciona postea la estructura de tu tabla registros
 

GKing

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Ago 2014
Mensajes
59
Tenes que hacer fetch de los datos primero. Además las comillas no son necesarias, PHP se encarga de eso.

También sanitizá las variables antes de meterlas en la DB con mysql_real_escape_string();

Y.. indentá el código, es mas entendible. :)

Indentación - Wikipedia, la enciclopedia libre

Insertar CODE, HTML o PHP:
$fecha_get = mysql_real_escape_string($fecha_get);
$valor_get = mysql_real_escape_string($valor_get);

$query = mysql_query("SELECT * FROM registros WHERE fecha = '$fecha_get'");

$num_rows = mysql_num_rows($query);

if ($num_rows > 0)
{
	$row = mysql_fetch_assoc($query);
	
	$valor = $row['valor'] + $valor_get;
	
	mysql_query("UPDATE registros SET valor='$valor' WHERE fecha = '$fecha_get'");
}

else
{
	mysql_query( "INSERT INTO registros (valor, fecha) VALUES ('$valor_get', '$fecha_get')" );
}
 

memoadian

Épsilon
Programador
Verificación en dos pasos activada
Desde
8 Feb 2013
Mensajes
940
intenta hacer la consulta directo en el phpmyadmin a ver que te devuelve, es más fácil ver el error ahí.
 
Arriba