Foros del Web » Programando para Internet » PHP »

restar valor de campo y actualizarlo

Estas en el tema de restar valor de campo y actualizarlo en el foro de PHP en Foros del Web. Hola, he añadido a mi script de tutoriales la opcion de comentarlo y de borrar los comentarios ke se hagan, pues bien el problema ke ...
  #1 (permalink)  
Antiguo 19/11/2005, 12:18
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
restar valor de campo y actualizarlo

Hola, he añadido a mi script de tutoriales la opcion de comentarlo y de borrar los comentarios ke se hagan, pues bien el problema ke tengo es a la hora de restar el valor actual ke contiene el campo valor en la tabla de los tutoriales cuando se elimina un comentario, lo de sumar me funciona bien, aki pongo el script ke elimina el comentario y hace la resta en el campo valor de la tabla tutoriales:

Código PHP:
<?
session_start
();
include(
'config.php');
$sql mysql_query("DELETE FROM comtutoriales WHERE in_coment='$in_coment'");
$resp=mysql_query("SELECT id,comentarios FROM tutoriales WHERE id='$id'");
$datos=mysql_fetch_array($resp);
$resta=$datos["comentarios"]-1;
mysql_query("UPDATE tutoriales SET comentarios='$resta' WHERE id='$id'"); 
echo 
"Registro eliminado correctamente";
?>
no se ke estara mal, el registro se elimina correctamente, solo me falla lo de la resta, a ver si me echan una mano please, gracias

un saludo
  #2 (permalink)  
Antiguo 19/11/2005, 14:34
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Supongo que no te hará la resta, porque $id debería de ser $datos["id"] en la última consulta. Y comprueba también, que en la consulta de la variable $resp llegue bien la variable $id.

De todas formas, puedes hacer la resta directamente en la sentencia SQL, así te ahorras una consulta...

Código PHP:
<?
mysql_query
("UPDATE tutoriales SET comentarios=comentarios-1 WHERE id='".$datos['id']."' limit 1"); 
?>
__________________
(:
  #3 (permalink)  
Antiguo 19/11/2005, 14:52
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
hola BoneZ, gracias por tu ayuda pero ni con eso me funciona, estoy tratando una y mil maneras de darle arreglo pero no puedo, solo funciona la eliminacion del registro pero no la resta :\
  #4 (permalink)  
Antiguo 19/11/2005, 15:12
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
ZydRick pega el código entero, a ver donde está el error. Que posiblemente venga de otra parte, no de la consulta.
__________________
(:
  #5 (permalink)  
Antiguo 19/11/2005, 15:29
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
mira este es el codigo con el muetros los comentarios en los tutoriales
Código PHP:
<?
  $query 
mysql_query("SELECT * FROM comtutoriales WHERE id='$id' ORDER BY fecha desc");  // hacemos un query para seleccionar las firmas de la id que tenemos seleccionada
  
$firma $query[firma] ;
    while(
$row=mysql_fetch_array($query))  // con un while creamos un bucle que muestra todas
    

    
$fecha date("d-m-Y",$row["fecha"]);
    
$coment bbcode($row["comentario"]);
    
$coment php($coment);
?>
<table width="500" border="0" cellspacing="1">
<?
    
if ($row[autor] == $_SESSION[usuario])
    {
?>
<tr>
    <td style="border: 1px solid #e0e0e0; padding: 5px;">
        <b><a class="vinculo" href="delcomentuto.php?in_coment=<?=$row[in_coment]?>" onclick="if(!confirm('Estás apunto de eliminar este comentario. Estás seguro de realizar esta operación?')) return false;">Eliminar</a></b>
    </td>
</tr>
<?
    
}
?>
<tr>
    <td bgcolor="#f8f8f8" style="border: 1px solid #e0e0e0;">
        <img src="images/user.gif" border="0">&nbsp;Enviado por:&nbsp;<b><a class="link4" href=perfil.php?id=<?=$row[idautor]?>><?=$row["autor"]?></a></b> el <b><?=$fecha?></b>&nbsp;&nbsp;
    </td>
</tr>
<tr>
    <td style="border: 1px solid #e0e0e0; padding: 5px;">
        <?=$coment?>
    </td>
</tr>
</table><br>
<?    }  ?>
<?
    
if(!empty($_SESSION["usuario"])){
?>
<form action="comentartuto.php?id=<?=$id?>" method="POST">
 <table width="500" border="0" cellspacing="0">
    <tr><td style="border: 1px solid #e0e0e0; padding: 5px;">
    <input type="hidden" name="autorid" value="<?=$_SESSION[idusuario]?>"><input type="hidden" name="autor" value="<?=$_SESSION[usuario]?>"><input type="hidden" name="fecha" value="<?=$row[fecha]?>">
    </td></tr>
    <tr><td>
    <label><b>Comentario:</b></label>
    <a href=javascript:bbcodes("[ b][ /b]") title="Texto en negrita [ b]aqui el texto[/b]"><img src="bold.jpg" border="0"></a> 
    <a href=javascript:bbcodes("[ i][ /i]") title="Texto en cursiva [ i]aqui el texto[ /i]"><img src="italic.jpg" border="0"></a> 
    <a href=javascript:bbcodes("[ u][ /u]") title="Texto subrayado [ u]aqui el texto[ /u]"><img src="uline.jpg" border="0"></a> 
    <a href=javascript:bbcodes("[ cita][ /cita]") title="Cita textual: sólo texto importante [ cita]aqui el texto[ /cita]"><img src="cita.jpg" border="0"></a>
    <a href=javascript:bbcodes("[ img][ /img]") title="Imagen [img]http://pagina.com/imagen.jpg[ /img]"><img src="img.jpg" border="0"></a>
    <a href=javascript:bbcodes("[code][/code]") title="Código HTML o mIRC scripting [ code]aqui el texto[ /code]"><img src="code.jpg" border="0"></a>
    <a href=javascript:bbcodes("[ php][ /php]") title="Código PHP [ php]aqui el texto[ /php]"><img src="php.jpg" border="0"></a>
    <a href=javascript:bbcodes("") title="URL [ url]http://ejemplo.com[ /url] o [ url=http://ejemplo.com]Nombre de la web[ /url]"><img src="url.jpg" border="0"></a>
    <a href=javascript:bbcodes("") title="email [ email]aqui@elemail[ /email]"><img src="mail.jpg" border="0"></a>
    <textarea rows="6" name="comentario"></textarea><br>
    <input type="submit" name="submit" value="Enviar comentario"></td></tr></table></form>
<?  }else {
   echo 
'<center><div class=aviso><strong>Para poder dejar comentarios en este tutorial debes estar registrado e identificado.</strong><br> 
    <a class=link5 href=reg.php><strong>:: Quiero registrarme ::</strong></a></div></center>'
;
  }
 
?>
si el autor del/los comentarios esta logueado le aparece un link ke dice eliminar le da click y elimina el comentario lo cual se realiza bien, al darle click en eliminar lo lleva al archivo delcomentuto.php seguido de la variable ke guarda el identificador del comentario, este es el codigo:

Código PHP:
<?
session_start
();
include(
'config.php');
mysql_query("DELETE FROM comtutoriales WHERE in_coment='$in_coment'");
$resp2=mysql_query("SELECT id,comentarios FROM tutoriales WHERE id='$id'");
$datos2=mysql_fetch_array($resp2);
$resta=$datos2[comentarios]-1;
mysql_query("UPDATE tutoriales SET comentarios='$resta' WHERE id='$id'"); 
echo 
"registro eliminado correctamente";
?>
edite algunas cosas pero sigue sin funcionar, a ver si me echan una mano
  #6 (permalink)  
Antiguo 19/11/2005, 16:01
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
¿De dónde llega $id?
¿Has comprobado que llega bien? Has un echo $id; a ver que te imprime.
__________________
(:
  #7 (permalink)  
Antiguo 19/11/2005, 16:14
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
finalmente lo he conseguido, me falto enviar la variable ke almacena el identificador del tutoarial de donde se esta eliminando el comentario de tal manera ke me keda asi:

<a class="vinculo" href="delcomentuto.php?id=<?=$id?>&in_coment=<?=$r ow[in_coment]?>">Eliminar</a>

no se si sera la manera mas correcta, pero me funciona perfecto, ahora si me resta el valor de los comentarios, gracias por tu ayuda :)

saludos
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 16:56.