Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    Funzione che cancelli record ad ogni fine mese

    Salve ragazzi,
    siccome vorrei realizzare un sistema di voto "il piu' bello/a di ogni mese" e diciamo che in gran parte ho già lo script creato..volevo sapere se esiste o come fare per creare una funzione che ogni fine del mese mi azzeri i voti..
    Quindi deve essere un sistema di voto mensile...
    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se i record contengono una data relativa al giorno di votazione, con questa query

    codice:
    select * from tabella
    where date_format(tua_data,"%Y-%m") < date_format(curdate(),"%Y-%m")
    estrai tutti quelli antecedenti al mese corrente. Ti ho scritto la select per ovvie ragioni, nel caso convertila in una di delete.

  3. #3
    Originariamente inviato da nicola75ss
    Se i record contengono una data relativa al giorno di votazione, con questa query

    codice:
    select * from tabella
    where date_format(tua_data,"%Y-%m") < date_format(curdate(),"%Y-%m")
    estrai tutti quelli antecedenti al mese corrente. Ti ho scritto la select per ovvie ragioni, nel caso convertila in una di delete.
    Ciao
    allora ho fatto questa query dove il campo datavoto della mia tabella voti che contiene la data di quando un utente riceve il voto nel formato 2009-06-08 15:48:11

    Codice PHP:
    $strsql="SELECT nick_votoricevente,datavoto,votoricevuto,sesso,foto FROM voti INNER JOIN iscritti ON nick_votoricevente = nickname WHERE date_format(datavoto,"%Y-%m") < date_format(curdate(),"%Y-%m")
      ORDER BY datavoto DESC LIMIT 7"

    Mi da questo errore però..

    Parse error: syntax error, unexpected '%' in /membri/italiawebchat/votazionemese.php on line 28

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    119
    Hai messo gli apici dentro la stringa.... o fai l'escape con \" oppure usi quelli singoli '

    Ciao


    -------------------------
    Legname Parma

  5. #5
    Originariamente inviato da tokki
    Hai messo gli apici dentro la stringa.... o fai l'escape con \" oppure usi quelli singoli '

    Ciao


    -------------------------
    Legname Parma
    Ho corretto cosi'

    Codice PHP:
    $strsql="SELECT nick_votoricevente,datavoto,votoricevuto,sesso,foto FROM voti INNER JOIN iscritti ON nick_votoricevente = nickname WHERE date_format(datavoto,\"%Y-%m\") < date_format(curdate(),\"%Y-%m\")   ORDER BY datavoto DESC LIMIT 7"
    errori non me ne da ma mi visualizza pagina bianca...come mai?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    119
    Hai eseguito la query?

    Guarda che errore restituisce, con

    Codice PHP:
    mysql_query($strsql) or die(mysql_error()) 
    Comunque puoi sostituire gli apici con quelli singoli per semplicità

    es:
    Codice PHP:
    (datavoto,'%Y-%m'

    ---------------------------
    Legnami Parma

  7. #7
    Originariamente inviato da tokki
    Hai eseguito la query?

    Guarda che errore restituisce, con

    Codice PHP:
    mysql_query($strsql) or die(mysql_error()) 
    Comunque puoi sostituire gli apici con quelli singoli per semplicità

    es:
    Codice PHP:
    (datavoto,'%Y-%m'

    ---------------------------
    Legnami Parma
    Nulla continua a mostrarmi pagina bianca..non mi da nessun errore
    Questo e lo script completo..
    Codice PHP:


    <html>   
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     <link rel="stylesheet" type="text/css" href="stilevoti.css" />

    <style>

    a
    {
    text-decoration: none;
    }

    </style>
    <body>
    <?   //Apro la sessione e...      
    session_start();

      
    include 
    "config.php";
     
    //mi connetto al datase   
    $link mysql_connect("$db_host""$db_database""$db_username""$db_password") or die("Errore connessione: "mysql_error());   
    //seleziono il database   
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " mysql_error());   
     
    //seleziono dalla tabella voti i 4 campi da visualizzare  

    $strsql="SELECT nick_votoricevente,datavoto,votoricevuto,foto,sesso FROM voti INNER JOIN iscritti ON nick_votoricevente = nickname WHERE date_format(datavoto,'%Y-%m') < date_format(curdate(),'%Y-%m')";  

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " mysql_error());  
    //faccio un ciclo while   

    while ($riga mysql_fetch_array($rs))

     {   
    $str_nickvotoricevente $riga['nick_votoricevente'];   
       
    $str_nickvotoinviante $riga['nick_votoinviante'];   
    $str_data $riga['datavoto'];   
    $str_voto $riga['votoricevuto'];
    $str_foto $riga['foto'];
    $str_sesso $riga['sesso'];

    //Conrollo foto
    if($str_foto == '')

    $str_foto="amore.gif";



    if(
    $str_sesso == 'femmina'){
    $classenick="donna";
    $colore="#FF99FF";
    }else{
    $classenick="uomo";
    $colore="#0066FF";




    echo 
    "<tr>
    <td><a target=\"_blank\"href=\"profiloaltri.php?nickname="
    .$str_nickvotoricevente."\"><img border=\"0\" src=\"foto/".$str_foto."\"
    width=\"30\" height=\"30\"><font  class=\"
    $classenick\" color=\"$colore\">".$str_nickvotoricevente."</font></a></td><td> riceve:$str_voto<img border=\"0\" src=\"faccine3/smile_occhiolino.gif\"
    width=\"10\" height=\"10\"></td>
    "



    }
    //qui chiudi il while   

    ?>

  8. #8
    Ho capito...
    praticamente io nella mia tabella voti ho tutti voti del mese attuale...e
    nella query per come è impostata dovrebbe visualizzarmi solo quelli antecedenti al mese attuale...infatti ho messo 05 come mese nella tabella voti e mi mostra tutti i voti del mese scorso..
    Ora stavo pensando a non cancellare piu' i voti dei mesi precedenti ma a stampare a video i voti ricevuti da ogni utente divisi per mese...
    Ho fatto unq uery cosi'
    Codice PHP:
    $strsql="SELECT nick_votoricevente,datavoto,votoricevuto,foto,sesso FROM voti INNER JOIN iscritti ON nick_votoricevente = nickname WHERE date_format(datavoto,'%Y-%m') = date_format(curdate(),'%Y-04')"
    e mi visualizza solo i mesi relativi ad aprile...cioè 04
    ora mi chiedo..mi tocca fare 12 query distinte e separate per visualizzare il totale dei voti ricevuti per utente relative ad ogni mese oppure esiste una scorciatoia?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    119
    prova a togliere @ quando fai mysql_query. Si usa solo per sopprimere i messaggi di errore.
    " Write. Less. Code. "
    ---------------------------------------
    Hotel Booking Software

  10. #10
    Grazie..
    Ho usato questa query per fare in modo di avere il totale dei voti ricevuti da un utente relativo al mese di aprile...

    Codice PHP:
    $strsql="SELECT T.* FROM(SELECT nick_votoricevente,datavoto,COUNT(votoricevuto)AS somma_voti,foto,sesso 
    FROM voti GROUP BY nick_votoricevente)  INNER JOIN iscritti ON nick_votoricevente = nickname  
    AS T WHERE date_format(datavoto,'%Y-%m') = date_format(curdate(),'%Y-04') 
    AND somma_voti >= 2 ORDER BY somma_voti DESC LIMIT 7"

    Mi da questo errore
    Errore query database: Every derived table must have its own alias

    Cosa ho sbagliato..?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.