Foros del Web » Programando para Internet » PHP »

Consultas y respuestas a BD

Estas en el tema de Consultas y respuestas a BD en el foro de PHP en Foros del Web. Hola, en mi web puse un sistema de mensajes entre usuarios, muy simple que consegui aca en el foro, pero no se hacer un par ...
  #1 (permalink)  
Antiguo 09/08/2009, 17:47
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Consultas y respuestas a BD

Hola, en mi web puse un sistema de mensajes entre usuarios, muy simple que consegui aca en el foro, pero no se hacer un par de cosas..

·Como podria hacer que si no tengo mensajes diga, "no tienes mensajes"
Se me ocurre:


Con una consulta a la base de datos, busque mensajes para el usuario actual ($actual), si no hay ningun mensaje que sea para el user actual (WHERE para == $actual) diga que no tienes mensajes. Si tengo mensajes que se muestren(obviamente ya se muestran los mensajes).


·Como se haria para que si tenes mensajes nuevos diga "tienes 1 mensaje nuevo" o "no tienes mensajes nuevos".
Se me ocurre:
En la consulta a la base de datos, dentro de los mensajes para el usuario actual($actual) busque mensajes que no hayan sido leidos (WHERE leido == 1) y si la cantidad es mayor o igual que uno, tienes X mensajes nuevos y si la cantidad es 0, no tienes mensajes nuevos.

Tengo la idea, pero no se como hacer el código en PHP:S

Saludos
  #2 (permalink)  
Antiguo 09/08/2009, 18:53
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 4 meses
Puntos: 8
Respuesta: Consultas y respuestas a BD

hola, el codigo php es el mismo de siempre, conectarte a la bd, y utilizar el mysql_query para ejecutar cada una de esa sconsultas y obtener el resultado correspondiente...

caso contrario lo que no sabrias es como hacer las consultas SQL.

espero no estar equivoca e intentar ayudarte entonces.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #3 (permalink)  
Antiguo 09/08/2009, 19:35
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Consultas y respuestas a BD

Las consultas las se hacer con mysql_query, pero no se como hacer para averiguar si existe y cuantos resultados hay de cada cosa.. Como tu dices no se hacer las consultas..
  #4 (permalink)  
Antiguo 09/08/2009, 21:37
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: Consultas y respuestas a BD

PARA VER SI HAY O NO MENSAJES.

Suponiendo que tu consulta se llama $sql, entonces seria

Código PHP:
if(mysql_num_rows($sql)>0){
 echo 
"usted tiene ".mysql_num_rows($sql)." mensajes";
}else{
 echo 
"usted no tiene mensajes nuevos";

Para lo de mensajes nuevos se me ocurre un campo en tu tabla llamado "leido" dónde 1 será leido y 0 no leido entonces tomandolo asi seria:

Código PHP:
$nuevos=mysql_query("SELECT * from tabla WHERE leido='1'");
if(
mysql_num_rows($nuevos)>0){
 echo 
"usted tiene ".mysql_num_rows($nuevos)." mensajes nuevos";
}else{
 echo 
"usted no tiene mensajes nuevos";


es una idea, lo hice rápido cualquier duda aqui andamos. Saludos
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 10/08/2009, 11:17
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Consultas y respuestas a BD

Ok muchas gracias, pense que era algo mas avanzado, ahora no puedo probar el código estoy en una PC muy vieja, tratare..

Muchas gracias a todos, cuando pruebe editare este mensaje poniendo si funciona o no, que a simple vista parece que si funcionara..

RESULTADOS:

Cita:
Código PHP:
if(mysql_num_rows($sql)>0){
 echo 
"usted tiene ".mysql_num_rows($sql)." mensajes";
}else{
 echo 
"usted no tiene mensajes nuevos";

Anda a la perfección..

Cita:
Código PHP:
$nuevos=mysql_query("SELECT * from tabla WHERE leido='1'");
if(
mysql_num_rows($nuevos)>0){
 echo 
"usted tiene ".mysql_num_rows($nuevos)." mensajes nuevos";
}else{
 echo 
"usted no tiene mensajes nuevos";

Me tira el siguiente error, estoy viendo de solucionarlo..
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a1103654/public_html/mensajes/leer_privados.php on line 44

La linea 44 es la siguiente
Código PHP:
if(mysql_num_rows($nuevos)>0){ 
Yo no veo errores..

Gracias

Última edición por almagropaco_; 10/08/2009 a las 11:36
  #6 (permalink)  
Antiguo 10/08/2009, 11:45
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Consultas y respuestas a BD

Poniendo en la linea 44
if("mysql_num_rows($nuevos)" > 0){
Osea con comillas anda bien, pero siempre dice que no tengo mensajes, tengo uno sin leer y dos leeidos..
Probe:
if("mysql_num_rows($nuevos)" == 1){
Pero pasa lo mismo, no tira el error pero dice que no tengo mensajes nuevos cuando si tengo..

Pero que torpe que soy, obviamente habia puesto el select from, pero como ultimamente estoy editando lo de los usuarios puse users no mensajes, ahora anda bien.. MUCHISIMAS GRACIAS

Última edición por almagropaco_; 10/08/2009 a las 11:50 Razón: error
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 13:15.