Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    AIUTO Query Database MySql

    Ciao a Tutti,

    premetto che io non sono un programmatore ma solo un appassionato...ho da poco iniziato a collaborare con una associazione senza fine di lucro e vorrei aiutarli nella gestione del loro sito. Hanno un database in MySql e bisognerebbe creare una pagina in php che-inserito il Giorno, il Mese e l'Anno-mi restituisca il numero degli iscritti nella tabella XYZ. Mi hanno detto però, ma io non so cosa voglia dire, che nella query sono da contare solo di distinct(email) e confermato != N. Ringrazio chi vorrà aiutarmi.

    Luca

  2. #2
    Ciao,
    mettiamo che la data inserita a mano sia in una variabile $date e che il campo della tabella con la data si chiami 'data'.
    La query dovrebbe essere:

    se la data inserita è in formato yyyy-mm-dd hh:mm:ss e il campo è di tipo datetime
    OPPURE
    se la data inserita è in formato yyyy-mm-dd e il campo è in formato testo con la stessa formattazione
    "SELECT DISTINCT(email) FROM tabella WHERE data='".$date."' AND confermato<>'N'"

    se la data inserita è in formato yyyy-mm-dd e il campo è di tipo datetime
    "SELECT DISTINCT(email) FROM tabella WHERE DATE(data)='".$date."' AND confermato<>'N'"

    se la data inserita è in formato yyyy-mm-dd hh:mm:ss e il campo è di tipo timestamp
    "SELECT DISTINCT(email) FROM tabella WHERE data='".timetostr($date)."' AND confermato<>'N'"

    Tieni presente che se la data inserita è in formato italiano (dd-mm-yyyy hh:mm:ss) devi fare in modo che nella query risulti in formato inglese (yyyy-mm-dd hh:mm:ss) e che se il campo della tabella è di tipo datetime o timestamp e la data inserita è solo giorno-mese-anno devi aggiungere 00:00:00 per identificare ore-minuti-secondi altrimenti non ti fa il confronto corretto.

    Naturalmente le query sopra estraggono i dati con la data uguale a quella inserita.
    Se vuoi estrarre i dati da quella data in avanti devi mettere data>='".$date."'
    Se vuoi estrarre i dati precedenti a quella data devi mettere data=<'".$date."'
    Se vuoi estrarre i dati compresi tra due date devi mettere data BETWEEN ('".$date1."' AND '".$date2."').

    Solitamente la mail in una tabella di registrazione è univoca quindi il DISTINCT non ti serve, se invece hai dei duplicati mettilo (comunque non è la forma corretta per una tabella del genere).

    Quando hai individuato la query che ti serve apri la connessione al db e poi:
    codice:
    $strQL=query_scelta;
    $recordSet=mysql_query($strSQL);
    $counter=mysql_num_rows($recordSet);                  //Numero dei risultati trovati
    while($record=mysql_fetch_array($recordSet))          //Ciclo che ti stampa tutti gli indirizzi
            echo "Indirizzo e-mail: ".$record['mail']."
    ";

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.