Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/02/2007, 09:59
atribis
 
Fecha de Ingreso: abril-2006
Ubicación: De vuelta en Asturias
Mensajes: 209
Antigüedad: 18 años
Puntos: 1
Re: frase aleatoria que no se repita

Muchas gracias Deer por tu respuesta. Tengo que analizarla bien a fondo porque suele costarme un poquito entender estas cosas
No obstante entiendo que para hacer el cambio de la frase, todo depende de la tabla con la fecha actual verdad? es decir cuando la página se carga, si la fecha que recoge ya no es la misma que hay en la base de datos, se cambia la frase y se cambia la fecha en dicha base. Entendí bien??

Lo de seleccionar la frase tambien voy a verlo bien, ahi si creo que me lié un poco más pero seguro que lo entenderé, que cuando me pongo cabezona...
Ayer después de preguntar todavía seguí erre que erre con el asunto y llegué a esto, pero no sé si está muy bien la verdad
Se supone una tabla frases con los campos frase, autor y publicada (fecha en que se publicó la última vez)
y hago esto:

Código PHP:
    $fecha=getdate(); //fecha actual
    
$hoy=$fecha['year'].'-'.$fecha['mon'].'-'.$fecha['mday'];  //fecha actual formateada aaaa/mm/dd
    
$dias=30//días que deben haber transcurrido como mínimo para publicar otra vez una frase

    
$publicada=date("Y-m-d",strtotime("$hoy-$dias day")); //calculo la fecha mínima de las frases que pueden volver a ser publicadas

    
$consulta="select * from frases where publicada <".$publicada."order by rand()";  //selecciono una frase al azar siempre que la fecha sea menor que la establecida como mínima
    
$resultado=mysql_query($consulta);
    while (
$filas=mysql_fetch_array($resultado)){
        echo 
$filas["frase"]."<BR>";
        echo 
$filas["autor"]."<BR>";

        
//aquí cambiaría la fecha de la frase, pero aún no he llegado
    

Creo que tengo que ponerle algún parámetro a Rand para que solo seleccione 1 y en vez de un while usar un if, pero para probar estaba viendo que me seleccionaba todas las que tenían fecha inferior a la que quería y no seleccionaba las otras. pero en general... estaría bien?? Porque así en caso de tener muchas frases podría ampliar el periodo y si tengo pocas disminuirlo con solo cambiar $dias
Y si lo hiciera así igualmente podría utilizar la parte de la tabla con la fecha que se compara con la actual para hacer el cambio verdad???
Sorry que sea tan preguntona, es que estoy bastante verde con el php y la forma que tengo de que me salga es intento-fallo y ya donde no sé seguir dar la barrila a los que saben :P
Mientras voy a probar a ver que pasa... mientras el ordenador no explote vamos bien

Gracias otra vez