Foros del Web » Programando para Internet » PHP »

contador de mensajes

Estas en el tema de contador de mensajes en el foro de PHP en Foros del Web. buenos días, alguien sabe como poder generar un contador de envios, para ke estos se muestren en un link. Es como una especie de servidor ...
  #1 (permalink)  
Antiguo 09/02/2006, 08:52
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
contador de mensajes

buenos días,

alguien sabe como poder generar un contador de envios, para ke estos se muestren en un link.

Es como una especie de servidor de correo ke va registrando los correos
Ejemplo:

Bandeja de Entrada(2)

Esto lo quiero aplicar internamente a mi web, para ke asi el administrador puedea ver los mensajes ke tiene y dirigirse a ver el contenido de estos.

el lugar de donde envio las consultas al adm. es de un formulario y otro es de un a especie de correo interno, pero no config. como servidor de correo.

En fin lo ke deseo es ke se me visualice cada mensaje como en el ejemplo.
para saber si tengo o no correos a y una vez eliminados el contador vuelva a cero.


Espero ke me hayan entendodo.

saludos,
  #2 (permalink)  
Antiguo 09/02/2006, 09:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En tu código actual que envias ese e-mail o en generar procesa esos datos .. ahí es donde debes genear un archivo de texto plano o Base de datos para poder leer el dato anterior, actualizarlo (sumar 1 unidad) y dejar el nuevo resultado (guadarlo).

No sé si trabajas con BBDD ya .. si es así es bien simple llevar este control sobre una BB (un "UPDATE contadores SET contador=contador+1") .. si no quieres usar BBDD o no dispones, puedes generar un archivo de texto plano con un sólo dato: ese n° de contador). Para esto puedes usar las funciones de tratamiento de archivos: file() .. fopen() .. fread() .. etc

Un saludo,
  #3 (permalink)  
Antiguo 09/02/2006, 10:16
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
Ejemplos

Me podrian dar ejemplos ya ke e buscado la funcion ke me mencionaste pero no e consiguido nada concreto, es por eso ke te solicito algo mas practico, ejemplos o formas concretas, para poder entender mejor y darle una solucion mas especifica.
Trabajo con BD.

Los ejemplos son la mejor forma de entender.
  #4 (permalink)  
Antiguo 09/02/2006, 10:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. primero, empieza por poner el código que ya usas para ver por donde tienes que "incrustrar" el nuevo código que se te proponga para implementar tu contador.

Sobre todo debes concretar más que hay que "contar" .. eso lo veremos con tus ejemplos: es la mejor forma de entender que estás haciendo ;)

Explica que quieres "contar" .. por qué hablas de un "admin" .. no sé si hay uno sólo .. o podrían haber más a los cuales separar cada "contador" de forma independiente .. o no.

Si usas Base de datos .. concreta cual!!!!!!!! no dejes que pensemos que usas "Mysql" como todo el mundo .. no cuesta nada dar esa información con cada pregunta para "centrar" a quien pueda intentar ayudarte! ..

Quieres hacer el contador con BBDD o no? .. (sólo te recomiendo que es buena opción usar BBDD .. por lo menos agiliza mucho el código y se presta para más cosas de foma sencilla).

Un saludo,
  #5 (permalink)  
Antiguo 09/02/2006, 12:09
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
ai vamos

Bueno lo ke quiro contar es el ingreso de un mensaje a la base de datos para ke asi el administrador lo pueda ver en MENSAJES RECIENTES(1), con lo cual el accedera para ver el mensaje ke recibio por parte de los link problemas y consultas respectivamente, para esto necesito generar un contador para ambas tablas, y ke se refleje en MENSAJES RECIENTES.
Bueno las tablas ke posee son las sgtes

mysql> desc problemas;
+--------------+-------------+
| Field | Type |
+--------------+-------------+
| Rut_Asignado | varchar(15) |
| Prioridad | char(10) |
| Estado | char(15) |
| Sistema | char(20) |
| Categoria | char(20) |
| Descripcion | char(90) |
| Error | char(40) |
+--------------+-------------+

mysql> desc correo;
+-----------+-------------+
| Field | Type |
+-----------+-------------+
| Id_Correo | int(5) |
| Para | varchar(30) |
| De | varchar(30) |
| Asunto | char(30) |
| Mensaje | char(255) |
+-----------+-------------+

A, el contador debe incrementarse cuando este presione enter y se ingresen los datos a la BD. y ademas el contador debe restarse cuando el administrador ingrese a leer la informacion de cada una de las tablas. para ke así el administrador pueda ver los verdaderos mensajes entrantes en MENSAJES RECIENTES(3) o (0).
Haca va mi formularios

Código PHP:
<table width="650" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <form name="form4" method="post" onsubmit="return validar1(this)" action="ProblemasProcesar.php">
    <tr> 
      <td height="12" colspan="17" valign="top" bgcolor="#CCCC33"><strong><em>Informaci&oacute;n 
        Del Usuario</em></strong></td>
    </tr>
    <tr> 
      <td width="30" height="7"></td>
     
    </tr>
    <tr> 
      <td height="20"></td>
      <td></td>
      <td></td>
      <td colspan="3" valign="top"> <select name="Funcionarios"  id="Rut_Asignado">
          <option value="" >Elija el Rut</option>
          <?php              
       $result
=mysql_query("SELECT * FROM Funcionarios",$link);
        while(
$row=mysql_fetch_array($result))
        echo (
'<option value="<b>'.$row["Rut_Asignado"].'</b>">'.$row["Rut_Asignado"].' '.$row["Apellido"].'</option>');
             
?>
        </select> </td>
      
    </tr>
    <tr> 
      <td height="48"></td>
      
   
    </tr>
    <tr> 
      <td height="12" colspan="17" valign="top" bgcolor="#CCCC33"><strong><font color="#000000" size="1"> 
        <em>Problema</em></font></strong></td>
    </tr>
    <tr> 
      <td height="6"></td>
    
    </tr>
    <tr> 
      <td height="4"></td>
      <td></td>
      <td></td>
      <td colspan="3" rowspan="3" valign="top"> <select name="Prioridad" id="Prioridad" >
          <option >Elija Prioridad</option>
          <option value="Bajo">Bajo</option>
          <option value="Mediano">Mediano</option>
          <option value="Alto">Alto</option>
        </select></td>
      
      <td colspan="2" rowspan="3" valign="top"> <select name="Estado" id="Estado">
          <option>Elija Estado</option>
          <option>Abierto</option>
          <option>En Progreso</option>
          <option>No Asignado</option>
          <option>Respuesta en Espera</option>
        </select> </td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="12"></td>
      <td valign="top"><strong><font color="#000000" size="1">Prioridad:</font></strong></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td colspan="3" valign="top"><strong>Estado:</strong></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="4"></td>
      
    </tr>
    <tr> 
      <td height="20">&nbsp;</td>
     
    </tr>
    <tr> 
      <td height="12"  colspan="17"   valign="top" bgcolor="#CCCC33"><strong><em>Informaci&oacute;n 
        Del Problema</em></strong></td>
    </tr>
    <tr> 
      <td height="14"></td>
      
      <td rowspan="3" valign="top"> <select name="Sistema" id="Sistema" >
          <option>Eliga la Opci&oacute;n</option>
          <option>Win XP Profesional</option>
        </select> </td>
     
      <td colspan="2" rowspan="3" valign="top"> <select name="Categoria" OnChange="cambiar()" id="Categoria"  >
          <option value="Sist_Operativo">Sist_Operativo</option>
          <option value="Hadware">Hadware</option>
          <option value="Software">Software</option>
          <option value="Config_Web">Config_Web</option>
          <option value="Otro">Otro</option>
        </select> </td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="12"></td>
      <td valign="top"><strong>S. O.:</strong></td>
     
      <td colspan="2" valign="top"><strong>Categor&iacute;a:</strong></td>
      
    </tr>
    <tr> 
      <td height="4"></td>
      
      
    </tr>
    <tr> 
      <td height="16"></td>
      
    </tr>
    <tr> 
      <td height="2"></td>
      <td rowspan="2" valign="top"><strong>Descripci&oacute;n:</strong></td>
      <td></td>
      <td colspan="11" rowspan="4" valign="top"> <input name="Descripcion" type="text" id="Descripcion" size="70" maxlength="90"> 
      </td>
      
    </tr>
    <tr>
      <td height="10"></td>
      <td></td>
      <td colspan="2" rowspan="2" valign="top"><font color="#FF0000"><strong>M&aacute;x. 
        70 Caracteres</strong></font></td>
    <td></td>
    </tr>
    <tr> 
      <td height="2"></td>
      <td rowspan="3" valign="top"><div align="center"><font color="#FF0000"><strong>(Corta)</strong></font></div></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      
    <tr> 
      <td height="7"></td>
      
    </tr>
    <tr> 
      <td height="20"></td>
      <td>&nbsp;</td>
      
    </tr>
    <tr> 
      <td height="2"></td>
      <td rowspan="3" valign="top"><strong>N&ordm; Error:</strong></td>
      <td></td>
      <td colspan="4" rowspan="3" valign="top"> <input name="Error" type="text" id="Error" size="30"> 
      </td>
      <
    </tr>
    <tr> 
      <td height="12"></td>
      <td></td>
      <td></td>
      <td colspan="3" valign="top"><strong><font color="#FF0000">Opcional</font></strong></td>
     
    </tr>
    <tr> 
      <td height="3"></td>
     
    </tr>
    <tr> 
      <td height="24"></td>
      
    </tr>
    <tr> 
      <td height="22"></td>
      <td>&nbsp;</td>
      <td></td>
      <td></td>
      <td></td>
      <td colspan="5" valign="top"> <input name="Ingresar" type="submit" id="Ingresar" value="Ingresar"> 
      </td>
      <td>&nbsp;</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </form>
</table>
  #6 (permalink)  
Antiguo 09/02/2006, 12:14
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
Anexo el ressto

FuncionariosProcesar
Código PHP:
<?php 
   
include("conex.php"); 
   
$link=Conectarse(); 
   
   
$Rut_Asignado=$_POST['Funcionarios'];
   
$Prioridad=$_POST['Prioridad'];
   
$Estado=$_POST['Estado']; 
   
$Sistema=$_POST['Sistema'];
   
$Categoria=$_POST['Categoria'];
   
$Descripcion=$_POST['Descripcion'];
   
$Error=$_POST['Error'];
   

   
mysql_query("INSERT INTO Problemas ( Rut_Asignado, Prioridad, Estado, Sistema, Categoria, Descripcion, Error)
          values ('$Rut_Asignado', '$Prioridad', '$Estado', '$Sistema', '$Categoria', '$Descripcion', '$Error')"
,$link); 
    


  
header('Location: Problemas.php');
     
   
?>

Código PHP:
Correo.php
<table width="650" border="0" cellpadding="0" cellspacing="0">
  <!--
DWLayoutTable-->
  <
form name="form2" method="post" action="CorreoProcesar.php">
    
   
      <
td valign="top"><strong>Para:</strong></td>
      <
td colspan="2" rowspan="3" valign="top"> <input name="Para" type="text" id="Para" onBlur="MM_validateForm('Para','','RisEmail');return document.MM_returnValue" size="50" maxlength="30"
     
      
      <
td rowspan="2" valign="top"><strong>De:</strong></td>
     
      <
td colspan="2" rowspan="3" valign="top"> <input name="De" type="text" id="De" onBlur="MM_validateForm('De','','RisEmail');return document.MM_returnValue" size="50" maxlength="30"
      
      <
td height="1"></td>
      <
td rowspan="2" valign="top"><strong>Asunto:</strong></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="16"></td>
      <
td colspan="2" rowspan="2" valign="top"> <input name="Asunto" type="text" id="Asunto" onBlur="MM_validateForm('Asunto','','R');return document.MM_returnValue" size="50" maxlength="60"
      </
td>
 
    </
tr>
    <
tr
      <
td height="1"></td>
      <
td rowspan="2" valign="top"><p><strong>Mensaje:</strong></p></td>
  
    </
tr>
    <
tr
      <
td height="11"></td>
      <
td colspan="2" rowspan="3" valign="top"> <textarea name="Mensaje" cols="70" rows="10" id="Mensaje" onChange="MM_validateForm('Mensaje','','R');return document.MM_returnValue"></textarea
      </
td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="12"></td>
      <
td valign="top"><font color="#FF0000"><strong>Claro</strong></font></td>
      
   
    
      <
td valign="top"> <input name="Enviar" type="submit" id="Enviar" onClick="MM_validateForm('Para','','RisEmail','De','','RisEmail','Asunto','','R','Mensaje','','R');return document.MM_returnValue" value="Enviar"
      </
td>
     
      </
form>
</
table
correoPorocesar.php
Código PHP:
<?php 
   
include("conex.php"); 
   
$link=Conectarse(); 
   


   
$Id_Correo=$_POST['Id_Correo'];
   
$Para=$_POST['Para']; 
   
$De=$_POST['De'];
   
$Asunto=$_POST['Asunto'];
   
$Mensaje=$_POST['Mensaje'];


   
mysql_query("INSERT INTO Correo ( Para, De, Asunto, Mensaje)
          values ('$Para', '$De', '$Asunto', '$Mensaje')"
,$link); 
    


  
header('Location: Correo.php');
     
   
?>
  #7 (permalink)  
Antiguo 09/02/2006, 12:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En ese caso no se trata de tener un contador (como dato en sí almacenado o gestionado en algun otro sitio) .. sino de contar los mensajes que tu ya obtienes como "recientes" por otro médio.

Como consideras tu que un mensaje es "reciente"? .. por fechas? .. por n°? ..

Un saludo,
  #8 (permalink)  
Antiguo 09/02/2006, 12:17
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 12 años
Puntos: 0
Por fecha o numero??

Por fecha o numero da lo mismo, ya ke no es de suma importancia el día ke entra , es por eso ke puede ser por uno de los dos.

  #9 (permalink)  
Antiguo 09/02/2006, 12:36
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
mira como te comente la otra vez yo tengo algo asi y lo que hice fue agregar un campo a la tabla de correos el campo lo llame status ahi es donde almacenare el valor 1 que significa corroe nuevo y 2 que ya fue leido

ahora

en tu formulario que es donde se envian los formularios coloca un campo oculto que se llame status con el valor 1 e insertalo en la tabla de tus correos

en el administrador haces un query y seleccionas todos los registros del campo status que sean igual a 1

pero ya tu sabes que 1 significa correo nuevo

Ahora cuando el administrador lea algun correo nuevo solamente haces un update al campo status del correo que esta viendo y lo cambias a 2 que seria correo leido

y al lado de bandeja de entrada colocas los la cantidad de registros con el campo 1 y ya :D
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #10 (permalink)  
Antiguo 09/02/2006, 12:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo ya no entiendo nada .. Si dices mensajes "recientes" pero luego dices que el administrador una vez que lo atiende cambia un "status" (o así debería hacerlo como indica carlosfocus). En ese caso los "mensajes" son los "no revisados o atentidos" (por eso me confunde el tema "reciente" para mi eso es bajo algún criterio: normalmente por fecha o los últimos N que entraron).

En ese caso .. lo que contarías sería esos registros cuyo "status" sea 1 (correo "nuevo") .. En una sentencia SQL tipo:

SELECT COUNT(*) FROM tablaquecorresponda WHERE status='1'

ahí tendrías tu "conteo" de ese tipo de registros que cumplen ese criterio.

Un saludo,
  #11 (permalink)  
Antiguo 09/02/2006, 14:08
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
es verdad lo que dice cluster, especificamente que necesitas contar y como por fecha, por leido :S
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
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 00:55.