Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Incrementar un número de una fila mysql

Estas en el tema de Incrementar un número de una fila mysql en el foro de Bases de Datos General en Foros del Web. Buenas, he hecho un campo de "Experiencia" con: <TIPO: mediumint(8) ATRIBUTOS: UNSIGNED NULL: No DEFECTO: 150> y otro de "Nivel" con: <TIPO: tinyint(4) NULL: Si ...
  #1 (permalink)  
Antiguo 17/04/2003, 07:24
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Incrementar un número de una fila mysql

Buenas, he hecho un campo de "Experiencia" con:
<TIPO: mediumint(8) ATRIBUTOS: UNSIGNED NULL: No DEFECTO: 150>
y otro de "Nivel" con:
<TIPO: tinyint(4) NULL: Si DEFECTO:1>
Lo que quiero hacer es que con un sistema de comentarios cada vez que un usuario ponga un comentario se incremente el número de experiencia en 50 por ejemplo y que suba de nivel cada 200 por ejemplo y no tengo ni idea de como hacerlo, ¿hice las tablas bien?, ¿sabeis como hacerlo?
  #2 (permalink)  
Antiguo 17/04/2003, 13:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo de la "experiencia":

A cada mensaje que ponga el usuario (ahí tendras que ver tu donde publicas el mensaje para identificar al usuario) tendras que hacer un "UPDATE" tipo:

UPDATE tabla_perfil_usuario SET campo_experiencia=campo_experiencia+50 WHERE id_usuario='$id_usuario'

Y lo del nivel (si no me fallan las matemáticas):

UPDATE tabla_perfil_usuario SET nivel=nivel+1 WHERE TRUNCATE(campo_experiencia/200,0)=campo_experiencia/200 AND id_usuario='$id_usuario'

Osese, se Actualiza el registro del id_usuario .. (el nivel se incremente en una unidad: nivel=nivel+1) Si, campo_experiecia divido entre 200 (en tu ejemplo) es un entero (sin decimales) (he de ahí q se use el TRUNCATE ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 19/04/2003, 12:02
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Este topic es un poco antigüo pero como aún no me ha salido esto pues por no poner otro...
Lo he puesto asi, en el archivo donde se envia el comentario he puesto:
<?
$db = mysql_connect("usuarios.lycos.es","nombre","contra seña");
mysql_select_db("base de datos", $db);

$experiencia = mysql_query("UPDATE usuarios SET exp=exp+50 WHERE id='$id_usuario'");
{
$nivel = mysql_query("UPDATE usuarios SET nivel=nivel+1 WHERE TRUNCATE(exp/200,0)=exp/200 AND id='$id_usuario'");
{
$resultComen = mysql_query("SELECT * FROM comentarios WHERE id_noticia='$id' ORDER BY id ASC");
while($rowComen = mysql_fetch_array($resultComen))
{
?>
<FORM NAME="miFormu" ACTION="nuevocomentario.php" METHOD="post">
<INPUT TYPE="hidden" NAME="id" VALUE="<? echo $id; ?>">
<INPUT TYPE="hidden" NAME="experiencia" VALUE="<? echo $experiencia; ?>">
<INPUT TYPE="hidden" NAME="nivel" VALUE="<? echo $nivel; ?>">
<INPUT TYPE="hidden" NAME="id_usuario" VALUE="<? echo $id_usuario; ?>">
<font face="Verdana" size="1" color="#000000"><?php echo $nickUsuarioL;?> desde aquí puedes mandar tu comentario.</font><br>
<textarea cols="35" rows="10" class="noticia11" NAME="comentario" SIZE=28 MAXLENGTH=250></textarea>
<BR><INPUT TYPE="image" src="comentario_.gif" VALUE="Submit">
</FORM>
<?
}
mysql_free_result($experiencia);
?>
<?
}
mysql_free_result($nivel);
?>

-----
Y para "nuevo comentario.php" esta puesto esto:

<?php
$db = mysql_connect("usuarios.lycos.es","nombre","contra seña");
mysql_select_db("tabla", $db);

include("login.php");

$experiencia = mysql_query("UPDATE usuarios SET exp=exp+50 WHERE id='$id_usuario'");
$nivel = mysql_query("UPDATE usuarios SET nivel=nivel+1 WHERE TRUNCATE(exp/200,0)=exp/200 AND id='$id_usuario'");

if(isset($HTTP_POST_VARS["id"]) && isset($HTTP_POST_VARS["nick"]) && isset($HTTP_POST_VARS["comentario"]))
{
if($HTTP_POST_VARS["comentario"] != "")
{
if($HTTP_POST_VARS["nick"] == "")
{
$nickNuevo = "Anónimo";
}
else
{
$nickNuevo = $HTTP_POST_VARS["nick"];
}
$idNoticia = $HTTP_POST_VARS["id"];
$comentarioNoticia = $HTTP_POST_VARS["comentario"];

mysql_query("INSERT INTO comentarios (id_noticia,nick,comentario) VALUES
('$idNoticia','$nickNuevo','$comentarioNoticia')") ;

echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"".getenv('HTTP_REFERER')."\";</SCRIPT>";
}
else
{
echo "Debe Introducir Un Comentario.";
}
}
?>

Pero no me sale >__< se quedan igual los números...

Última edición por Gryphus; 23/05/2003 a las 07:25
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 02:15.