Foros del Web » Programando para Internet » PHP »

Mensajes Aletaorios

Estas en el tema de Mensajes Aletaorios en el foro de PHP en Foros del Web. Hola a todos! Me gustaría crear un archivo en php que me muestre un mensaje aleatorio en un div en mi página web. La idea ...
  #1 (permalink)  
Antiguo 18/10/2010, 22:16
 
Fecha de Ingreso: agosto-2010
Ubicación: Detrás de Tí
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 3
Mensajes Aletaorios

Hola a todos!

Me gustaría crear un archivo en php que me muestre un mensaje aleatorio en un div en mi página web. La idea sería crear una base de datos con 2 campos (Id, Mensaje) y hacer la impresión del "mensaje" de forma aleatoria en un lugar de mi página y que, obviamente, este cambie por cada relogin' que se le haga a la misma.

También sería genial si se pudiera crear un formulario con el fin de que se pueda agregar "mensajes" a dicha base de datos, sin tener que anexar el dato directamente.

¿Alguien me da una mano? Gracias de antemano
  #2 (permalink)  
Antiguo 19/10/2010, 01:51
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Respuesta: Mensajes Aletaorios

Hola.

Vamos por parte.

En una tabla insertaría los mensajes que vayas a mostrar, con su id y mensaje.

Luego puede mostrar el resultado por pantalla, cogiendo una id al azar con la funcion rand().

O más fácil, es hacer esta llamada a la base de datos.

$sql="SELECT * FROM mensajes ORDER BY RAND() LIMIT 0,1";

Esto te mostrará un solo registro al azar.

Y lo otro que pides, de agregar mensaje a la base de datos, es un "poquito" mas extenso, debería de especificar más, ¿sabes como insertar datos en una bd?, sabes realizar el formulario ?, en fin, se un poco más específico.

Saludos y suerte
  #3 (permalink)  
Antiguo 19/10/2010, 17:27
 
Fecha de Ingreso: agosto-2010
Ubicación: Detrás de Tí
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Mensajes Aletaorios

Gracias por la respuesta!

Pues gracias por la función, era lo que necesitaba ya con esto se como realizar la función para que traiga un mensaje al azar.

Como estoy iniciándome en esto de php no se como insertar datos a una base de datos, solo he hecho cosas básicas para mostrar información de ella. El formulario si es fácil de hacer y no me costaría trabajo hacerlo. Me imagino que sería algo como

<?
$mensaje=$_POST['IDdelCampo'];
?>

Pero no se como pasar esa variable a la base de datos. Creo que me explico :S Saludos y gracias por la respuesta
  #4 (permalink)  
Antiguo 19/10/2010, 17:33
Avatar de ylellan  
Fecha de Ingreso: mayo-2010
Ubicación: en un lugar de Veracruz
Mensajes: 432
Antigüedad: 13 años, 10 meses
Puntos: 36
Respuesta: Mensajes Aletaorios

puedes leer un poco sobre mysql_query e intrucciones de mysql que te ayudan a insertar datos

Código PHP:
//hacer conexion
$hola=$_POST['hola'];
mysql_query("insert into tabla(campos)Value('$hola')") or die ("Error en inserccion".mysql_error()); 
besos
  #5 (permalink)  
Antiguo 19/10/2010, 18:09
 
Fecha de Ingreso: agosto-2010
Ubicación: Detrás de Tí
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Mensajes Aletaorios

Genial! Creo que con esta información no tendré problemas. Gracias a ambos. Haré el script y preguntaré si se presenta algún error en el camino!
  #6 (permalink)  
Antiguo 19/10/2010, 18:49
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Mensajes Aletaorios

Cita:
Iniciado por ylellan Ver Mensaje
puedes leer un poco sobre mysql_query e intrucciones de mysql que te ayudan a insertar datos

Código PHP:
//hacer conexion
$hola=$_POST['hola'];
mysql_query("insert into tabla(campos)Value('$hola')") or die ("Error en inserccion".mysql_error()); 
besos
Esta bien el codigo, pero creo que lo correcto y para evitar errores es concatenar..
Código PHP:
mysql_query("INSERT INTO tabla(campos) VALUES ('".$hola."')") or die ("Error en insercion: ".mysql_error()); 
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #7 (permalink)  
Antiguo 19/10/2010, 18:53
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Mensajes Aletaorios

Cita:
Iniciado por Sourcegeek Ver Mensaje
Esta bien el codigo, pero creo que lo correcto y para evitar errores es concatenar..
Código PHP:
mysql_query("INSERT INTO tabla(campos) VALUES ('".$hola."')") or die ("Error en insercion: ".mysql_error()); 
amigo si el codigo esta entre comillas dobles "" no es necesario la concatenacion aca el amigo pateketrueke dejo un aporte de como usar las comillas creo que el lo explica mejor que yo saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 19/10/2010, 19:14
 
Fecha de Ingreso: agosto-2010
Ubicación: Detrás de Tí
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Mensajes Aletaorios

Vuelvo con otra consulta. Ya he logrado mostrar los mensajes aleatorios con el siguiente código

Código PHP:
<?php
$conexion
mysql_connect("sql211.byethost3.com","b3_6207096","*****") or die ("Error en la conexion");

mysql_select_db("b3_6207096_mensajes",$conexion);

$query="SELECT * FROM mensajes ORDER BY RAND() LIMIT 0,1";
$resultadomysql_query($query$conexion) or die (mysql_error());
$totalmysql_num_rows($resultado);
?>

<html>
<head>
<title>Sabias que?</title>
</head>
<body>
<h1>Sabias que?</h1>
<?php
if($total>0){
      while(
$fila=mysql_fetch_assoc($resultado)){
      echo 
$fila['mensaje'];
      }
}
?>
</body>
</html>
Ahora bien estoy intentando con el formulario para insertar datos a la base de datos y me he perdido, ya que me sale que "no hay base de datos seleccionada", les dejo el código:

Código PHP:
<?php
$conexion
mysql_connect("sql211.byethost3.com","b3_6207096","*******") or die ("Error, en la conexion");

$mensaje=$_POST['mensaje'];
mysql_query("insert into b3_6207096_mensajes Value('$mensaje')") or die ("Error en inserccion".mysql_error());  
?>
Dentro de la base de datos "b3_6207096_mensajes" tengo una tabla llamada "mensajes" que contiene 2 campos, un ID y el mensaje en si. Lo que quiero hacer es que lo que tenga $mensaje se vaya al campo "mensaje" de la base de datos.

Gracias por adelantado
  #9 (permalink)  
Antiguo 19/10/2010, 19:17
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Mensajes Aletaorios

pues tu mismo te estas dando la respuesta no has seleccionado la base de datos
Código PHP:
mysql_select_db('tu_db') or die (mysql_error()); 
ademas si revisas el mysql_connect(); va es el usuario no la db
Código PHP:
Ver original
  1. $conexion= mysql_connect("host","mysql_user","pass_mysql_user");
por eso el error saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #10 (permalink)  
Antiguo 19/10/2010, 19:42
 
Fecha de Ingreso: agosto-2010
Ubicación: Detrás de Tí
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Mensajes Aletaorios

Trabaja todo al 100% gracias a todos!
  #11 (permalink)  
Antiguo 19/10/2010, 19:49
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Mensajes Aletaorios

Cita:
Iniciado por carlos_belisario Ver Mensaje
amigo si el codigo esta entre comillas dobles "" no es necesario la concatenacion aca el amigo pateketrueke dejo un aporte de como usar las comillas creo que el lo explica mejor que yo saludos
Acabo de leer el articulo y es lo mismo..
Ademas, decia lo de concatenar porque si no, a la hora de poner arrays entre comillas dobles, le va a tirar error.....
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #12 (permalink)  
Antiguo 19/10/2010, 20:07
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Mensajes Aletaorios

pues en este caso no aplica eso y eso ya lo va viendo el programador al momento que realice su codigo pero como bien explico el amigo en su aporte
Cita:
Ahora, ¿que pasa si rodeamos con comillas una variable?
Dependiendo del lenguaje, en este caso PHP, las sencillas NO evalúan el contenido en la cadena... pero las dobles SI que lo hacen.
en este caso que coloco ylellan
Cita:
mysql_query("insert into tabla(campos)Value('$hola')") or die ("Error en inserccion".mysql_error());
no es necesario concatenar ya que esta entre comillas dobles "" y toma lo que esta dentro de las variables como dices si tiene un arreglo si traeria concecuencias, aunque hay maneras de resolverlo una es concatenando otra colocando las comillas dobles del array simple pero creo que para este caso no se da saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 19/10/2010, 20:40
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mensajes Aletaorios

Adapta este código php para que interactue con mysql

http://www.entra-ya.com.ar/texto-aleatorio-con-php/
  #14 (permalink)  
Antiguo 19/10/2010, 21:35
 
Fecha de Ingreso: agosto-2010
Ubicación: Detrás de Tí
Mensajes: 162
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Mensajes Aletaorios

Chicos a pesar de que ya todo me funciona tengo un problemas con los caracteres especiales (entiéndase tildes y demás) cuando la información es añadida desde el formulario. ¿Qué puedo hacer para que no me salgan esos símbolos raros en lugar de la tilde y demás caracteres?.
  #15 (permalink)  
Antiguo 19/10/2010, 22:22
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mensajes Aletaorios

remplazarlos por

ejemplo Ñ: &ntilde;

Etiquetas: mensajes
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 18:42.