Autor Tema: [Ayuda] Restar números de la base de datos desde un php...  (Leído 1599 veces)

Desconectado autorojo

  • PHPer@
  • **
  • Mensajes: 59
  • Karma: 0
    • Ver Perfil
[Ayuda] Restar números de la base de datos desde un php...
« en: 10 de Noviembre de 2007, 21:37:28 pm »
 O0 << Nuevo emoticon xDDD

 HOla, quiero saber como hacer para restar números desde un php a la db, porque tengo el sistema de créditos en mi minichat y quiero hacer que cada vez que manden minimensajes les resten créditos de la base de datos, primero, tengo que ponerle auto-increment a la base de datos? :S, tengo asi el enviarmms.php;


<? include("acceder.php"); ?>
<link REL="STYLESHEET" HREF="style.css" TYPE="text/css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
<script type="text/javascript">
var max=200;
var ancho=300;
function progreso_tecla(obj) {
  var progreso = document.getElementById("progreso");  
  if (obj.value.length < max) {
    progreso.style.backgroundColor = "#FFFFFF";    
    progreso.style.backgroundImage = "url(textarea.png)";    
    progreso.style.color = "#000000";
    var pos = ancho-parseInt((ancho*parseInt(obj.value.length))/200);
    progreso.style.backgroundPosition = "-"+pos+"px 0px";
  } else {
    progreso.style.backgroundColor = "#CC0000";    
    progreso.style.backgroundImage = "url()";    
    progreso.style.color = "#FFFFFF";
  } 
  progreso.innerHTML = "("+obj.value.length+" / "+max+")";
}
</script>
<style type="text/css">
textarea {
  width: 300px;
  height: 100px;
}
#progreso {
  background: url(img/textarea.png) no-repeat;
  background-position: -300px 0px;
  width: 300px;
  height: 14px;
  text-align: center;
  color: #000000;
  font-size: 8pt;
  font-family: Arial;
  text-transform: uppercase;
  }
.Estilo1 {
	
font-size: 10px;
	
font-style: italic;
}
.Estilo2 {color: #990000}
.Estilo4 {
	
color: #990000;
	
font-weight: bold;
	
font-size: 16px;
}
</style>
</head>

<body>
<center><?
@include("conectar.php");
if (isset(
$_POST[&#39;Submit&#39;])){
$titulo htmlspecialchars($_POST[&#39;titulo&#39;]);
$mcnick $_POST[&#39;mcnick&#39;]; 
$habbonick htmlspecialchars($_POST[&#39;habbonick&#39;]);
$urlplaca $_POST[&#39;placa&#39;]; 
$mensaje htmlspecialchars($_POST[&#39;mensaje&#39;]); 
$fecha time();
$ip $_SERVER[&#39;REMOTE_ADDR&#39;];
$quer*****"SELECT * FROM `usuarios` WHERE nick = &#39;".$_SESSION[nnick]."&#39;";
$respos mysql_query($quer*****s);
$rowses mysql_num_rows($respos);
$crdi mysql_fetch_array($respos);
$crefinal $crdi[&#39;creditos&#39;] > -50;
$queryejec4 "UPDATE `usuarios` set creditos = &#39;".$crefinal."&#39; WHERE nick = &#39;".$_SESSION[nnick]."&#39;";
$sql = @mysql_query("INSERT INTO mms (titulo,mcnick,habbonick,urlplaca,mensaje,fecha,ip) VALUES (&#39;$titulo&#39;,&#39;$mcnick&#39;,&#39;$habbonick&#39;,&#39;$urlplaca&#39;,&#39;$mensaje&#39;,&#39;$fecha&#39;,&#39;$ip&#39;)");
if(
$sql){
echo 
"<b>¡Mensaje Enviado! <br> <a href=\"javascript:window.history.back();\">Volver</a>";
} else {
echo 
"<b>Error al intentar enviar el Mensaje.. Intenta de Nuevo <br> <a href=\"javascript:window.history.back();\">Volver</a>";

} else {
?>
</center>

<form id="enviar_mensaje" name="enviar_mensaje" method="post" 
action="panel.php?mostrar=enviarmms&<? echo session_name()."=".session_id() ?>">
  <p align="center" class="Estilo4">:: Enviar MiniMensajes ::<br /></p>
  <p align="center">
    <?
$query 
"SELECT * FROM `usuarios` WHERE nick = &#39;".$_SESSION[nnick]."&#39;";
$resp mysql_query($query);
$rows mysql_num_rows($resp);
$crd mysql_fetch_array($resp);
$creditos $crd[creditos];
if(
$creditos 50){
 
?>
<span class="Estilo2">Nick Minichat : </span><br />
    <input class="Boton" name="mcnick" type="text" id="mcnick" value="<?=$_SESSION[&#39;nnick&#39;]; ?>" readonly="readonly"/>
    
    <br />
    <span class="Estilo2">Habbo Nick:</span><br />
    <span class="Estilo1">
    <input class="Boton" name="habbonick" type="text" id="habbonick" />
    <br />
    (Asegurate de Poner bien tu Habbo Nick,<br />
    de lo contrario no aparecer&aacute; la imagen) </span></p>
  <p align="center" class="Estilo2">Selecciona una Placa:</p>
  <table width="260" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <th scope="row"> <input name="placa" type="radio" value="placa1.gif" />
          <img src="placa1.gif" width="50" height="50" />
        </label></th>
      <td><input name="placa" type="radio" value="placa2.gif" />
          <img src="placa2.gif" width="50" height="50" /></td>
      <td><input name="placa" type="radio" value="placa3.gif" />
          <img src="placa3.gif" width="50" height="50" /></td>
    </tr>
    <tr>
      <th scope="row"><input name="placa" type="radio" value="placa4.gif" />
          <img src="placa4.gif" width="50" height="50" /></th>
      <td><input name="placa" type="radio" value="placa5.gif" />
          <img src="placa5.gif" width="50" height="50" /></td>
      <td><input name="placa" type="radio" value="placa6.gif" />
          <img src="placa6.gif" width="50" height="50" /></td>
    </tr>
    <tr>
      <th scope="row"><input name="placa" type="radio" value="placa7.gif" />
          <img src="placa7.gif" width="50" height="50" /></th>
      <td><input name="placa" type="radio" value="placa8.gif" />
          <img src="placa8.gif" width="50" height="50" /></td>
      <td><input name="placa" type="radio" value="placa9.gif" />
          <img src="placa9.gif" width="50" height="50" /></td>
    </tr>
    <tr>
      <th scope="row"><input name="placa" type="radio" value="placa10.gif" />
          <img src="placa10.gif" width="50" height="50" /></th>
      <td><input name="placa" type="radio" value="placa11.gif" />
          <img src="placa11.gif" width="50" height="50" /></td>
      <td><input name="placa" type="radio" value="placa12.gif" />
          <img src="placa12.gif" width="50" height="50" /></td>
    </tr>
    <tr>
      <th scope="row"><input name="placa" type="radio" value="placa13.gif" />
          <img src="placa13.gif" width="50" height="50" /></th>
      <td><input name="placa" type="radio" value="placa14.gif" />
          <img src="placa14.gif" width="50" height="50" /></td>
      <td><input name="placa" type="radio" value="placa15.gif" />
          <img src="placa15.gif" width="50" height="50" /></td>
    </tr>
  </table>
  <p align="center">
    <label></label>
    <span class="Estilo2">Titulo del Mensaje:</span><br />
    <span class="Estilo1">(Max 30 Caracteres) </span><br /> 
    <input class="Boton" name="titulo" type="text" id="titulo" maxlength="30" />
    <br />
    <span class="Estilo2">Mensaje</span>:<br />
  <span class="Estilo1">(Max 200 Caracteres) </span><br />  
    <textarea name="mensaje" class="Boton" id="mensaje" onKeyUp="progreso_tecla(this)" value=""></textarea>
  </p>
  <center><div id="progreso">(0 / 200)</div></center>
  <p align="center">
    <label>
    <input name="Submit" type="submit" class="Boton" value="Enviar Mensaje" />
    </label>
  </p>
</form>
        <?
} else {
  
?>
<span class="Estilo2">Necesitas 50 créditos para enviar un MiniMensaje, y tu no los tienes.<br>Si los quieres pídeselos a algun Web-Master. </span>
<? } } ?>
</body>
</html>



 Segun mi, el error está por aca;
Citar
<?
@include("conectar.php");
if (isset($_POST['Submit'])){
$titulo = htmlspecialchars($_POST['titulo']);
$mcnick = $_POST['mcnick'];
$habbonick = htmlspecialchars($_POST['habbonick']);
$urlplaca = $_POST['placa'];
$mensaje = htmlspecialchars($_POST['mensaje']);
$fecha = time();
$ip = $_SERVER['REMOTE_ADDR'];
$quer*****s = "SELECT * FROM `usuarios` WHERE nick = '".$_SESSION[nnick]."'";
$respos = mysql_query($quer*****s);
$rowses = mysql_num_rows($respos);
$crdi = mysql_fetch_array($respos);
$crefinal = $crdi['creditos'] > -50;
$queryejec4 = "UPDATE `usuarios` set creditos = '".$crefinal."' WHERE nick = '".$_SESSION[nnick]."'";
« Última modificación: 10 de Noviembre de 2007, 21:42:08 pm por autorojo »

Comunidad PHPeros

[Ayuda] Restar números de la base de datos desde un php...
« en: 10 de Noviembre de 2007, 21:37:28 pm »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #1 en: 10 de Noviembre de 2007, 22:05:59 pm »
Modificando
$crefinal $crdi[&#39;creditos&#39;] > -50;
Por:
$crefinal $crdi[&#39;creditos&#39;] - 50;
Deberia arreglarse el problema,
Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado autorojo

  • PHPer@
  • **
  • Mensajes: 59
  • Karma: 0
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #2 en: 10 de Noviembre de 2007, 23:33:43 pm »
Modificando
$crefinal $crdi[&#39;creditos&#39;] > -50;
Por:
$crefinal $crdi[&#39;creditos&#39;] - 50;
Deberia arreglarse el problema,
Saludos
¡No me funciona!

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #3 en: 11 de Noviembre de 2007, 00:01:17 am »
Intenta reemplazar esto:
$crefinal $crdi[&#39;creditos&#39;] > -50;
$queryejec4 "UPDATE `usuarios` set creditos = &#39;".$crefinal."&#39; WHERE nick = &#39;".$_SESSION[nnick]."&#39;";


Por esto:
$crefinal $crdi[&#39;creditos&#39;].&#39; - 50;
$queryejec4 mysql_query("UPDATE `usuarios` SET creditos = &#39;".$crefinal."&#39; WHERE nick = &#39;".$_SESSION[&#39;nnick&#39;]."&#39;");


Saludos, Frank!

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #4 en: 11 de Noviembre de 2007, 00:30:10 am »
Lo que creo que intentas hacer, Frank, es una union (Que estamos hablando en otro tema)
$crefinal contiene una resta, y el caracter punto ( . ) es una union.
Hay que saber diferenciar entre hacer una formula matematica o unir contenido, en este caso, el esta haciendo una formula matematica, por lo que no es necesario el punto.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado autorojo

  • PHPer@
  • **
  • Mensajes: 59
  • Karma: 0
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #5 en: 11 de Noviembre de 2007, 02:17:01 am »
Lo que creo que intentas hacer, Frank, es una union (Que estamos hablando en otro tema)
$crefinal contiene una resta, y el caracter punto ( . ) es una union.
Hay que saber diferenciar entre hacer una formula matematica o unir contenido, en este caso, el esta haciendo una formula matematica, por lo que no es necesario el punto.

Saludos!


Bueno entonces hago lo que me dijo Frank? Talvez tengo que ponerle auto-increment a la tabla usuarios, o no? O crear una nueva?

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #6 en: 11 de Noviembre de 2007, 09:14:24 am »
El auto_increment no tendra nada que ver.
Despues de definir la variable $queryejec4, ¿Usas la funcion mysql_query($queryejec4);?
En el codigo que dijiste no aparece, si no lo has hecho, hazlo, y si lo has hecho, cambialo por:
mysql_query($queryejec4) or die(mysql_error());

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado autorojo

  • PHPer@
  • **
  • Mensajes: 59
  • Karma: 0
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #7 en: 14 de Noviembre de 2007, 02:16:22 am »
El auto_increment no tendra nada que ver.
Despues de definir la variable $queryejec4, ¿Usas la funcion mysql_query($queryejec4);?
En el codigo que dijiste no aparece, si no lo has hecho, hazlo, y si lo has hecho, cambialo por:
mysql_query($queryejec4) or die(mysql_error());

Saludos

 No soy tan experto como vos en php por eso tengo algunos (muchos xD) errores..

 Al grano, despues de definir la variable $queryejec4, define la variable $sql ($sql = @mysql_query("INSERT INTO mms (titulo,mcnick,habbonick,urlplaca,mensaje,fecha,ip) VALUES (&#39;$titulo&#39;,&#39;$mcnick&#39;,&#39;$habbonick&#39;,&#39;$urlplaca&#39;,&#39;$mensaje&#39;,&#39;$fecha&#39;,&#39;$ip&#39;)");
if(
$sql){


 Entonces tengo que borrar todo la parte que inserta a la tabla mms todas esas cosas?

  O directamente reemplazo todo y listo? :S  O0

Desconectado Frank005

  • PHPero Experto
  • *****
  • Mensajes: 580
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #8 en: 14 de Noviembre de 2007, 02:43:58 am »
Sino no me equivoco, sería mejor hacerlo así:

$sql "INSERT INTO mms (titulo, mcnick, habbonick, urlplaca, mensaje, fecha, ip) VALUES (&#39;".$titulo."&#39;,&#39;".$mcnick."&#39;,&#39;".$habbonick."&#39;,&#39;".$urlplaca."&#39;,&#39;".$mensaje."&#39;,&#39;".$fecha."&#39;,&#39;".$ip."&#39;)";
if(
mysql_query($sql)){
echo 
"Insertado con éxito.";
} else {
echo 
"Hubo un error.";
}



Desconectado autorojo

  • PHPer@
  • **
  • Mensajes: 59
  • Karma: 0
    • Ver Perfil
Re: [Ayuda] Restar números de la base de datos desde un php...
« Respuesta #9 en: 14 de Noviembre de 2007, 03:01:27 am »
Sino no me equivoco, sería mejor hacerlo así:

$sql "INSERT INTO mms (titulo, mcnick, habbonick, urlplaca, mensaje, fecha, ip) VALUES (&#39;".$titulo."&#39;,&#39;".$mcnick."&#39;,&#39;".$habbonick."&#39;,&#39;".$urlplaca."&#39;,&#39;".$mensaje."&#39;,&#39;".$fecha."&#39;,&#39;".$ip."&#39;)";
if(
mysql_query($sql)){
echo 
"Insertado con éxito.";
} else {
echo 
"Hubo un error.";
}




 No me funciona nadaaa!! Les doy por MP mi msn y hago un nuevo rango que pueda mandar Minimensajes para que vean que no bajan los credits!!

 Aparte Frank eso no tiene nada que ver porque yo quiero que reste créditos..

 (Los créditos MySQL están en -Usuarios > Creditos-)

   Saludos, Auto!