Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Query Mysql e PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    28

    Query Mysql e PHP

    Buongiorno a tutti

    scusate l'ignoranza ma avrei la necessità di avere delle delucidazioni in merito ad una query Mysql e relativo codice PHP:

    devo effettuare una query da un DB estraendo dei dati da data x a data y.

    Vorrei che questi dati venissero poi visualizzati in una tabella giorno per giorno.
    Vi faccio un esempio

    2009-08-01 dati estratti
    2009-08-02 dati estratti
    2009-08-03 dati estratti

    ecc...

    mi potete indicare gentilmente come posso fare ?

    Grazie anticipatamente

    Sandro

  2. #2
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Per quanto riguarda l'estrarre i record che hanno una data compresa tra una data x e una y puoi fare (l'ho abbozzata eh, spero sia giusta):

    codice:
    SELECT * FROM tabella WHERE campo_data BETWEEN STR_TO_DATE('01-5-2009','%d-%m-%Y') AND STR_TO_DATE('20-5-2009','%d-%m-%Y')
    Per l'altrop quesito che hai posto è necessario perlomeno conoscere la struttura della tabella., altrimenti è un pochino difficile risponderti.

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    28
    Ciao r1cky` grazie per la risposta....

    provo ad essere più chiaro sulle mie necessità approfittando della tua competenza :-)

    Allora ho la seguente query:

    @$rs_count = mysql_query ("select COUNT(*) AS stato from utenti_ebay where stato = 'Chiuso' and data >= '2009-08-01' and data <='2009-08-31'");
    @$row_sum = mysql_fetch_assoc ($rs_count);

    echo "<td>$row_sum[stato]</td> ";

    mi conta nella tabella utenti_eBay quanti record hanno lo stato 'Chiuso' dalla data '2009-08-01' alla data '2009-08-01'. Una volta estratto mi scrive il dato (echo "<td>$row_sum[stato]</td> "

    Il problema è che mi dice quanti stato = 'Chiuso' ho totale nella fascia di data indicata mentre io li vorrei conoscere per giorno :

    2009-08-01 N. stato = chiuso ?
    2009-08-01 N. stato = chiuso ?

    ecc.

    Spero di essere stato chiaro.

    Ti ringrazio nuovamente per la collaborazione

    Sandro

  4. #4
    raggruppa per data:

    codice:
    $rs_count = mysql_query ("select data, COUNT(*) AS stato 
                             from utenti_ebay 
                             where stato = 'Chiuso' 
                                   and 
                                   data >= '2009-08-01' and data <='2009-08-31'
                             group by data
                             order by data");
    e non mettere @ davanti alla variabile. Al limite mettilo davanti alla funzione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    28
    Ottimo grazie mille

    ma come stampo poi i dati ?

    ho inserito :

    $rs_count = mysql_query ("select data, COUNT(*) AS stato from utenti_ebay where stato = 'Chiuso' and data >= '2009-08-01' and data <='2009-08-31'group by data order by data");

    echo "<td>$row_sum[data]</td> ";
    echo "<td>$row_sum[stato]</td> ";


    ma purtroppo mi fa vedere sempre solo una riga.

    mi puoi aiutare?

    grz ancora

    sandro

  6. #6
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Devi fare un ciclo!

    Codice PHP:
    $rs_count mysql_query ("select data, COUNT(*) AS stato from utenti_ebay where stato = 'Chiuso' and data >= '2009-08-01' and data <='2009-08-31'group by data order by data");
    while( 
    $row_sum mysql_fetch_array($rs_count)){
    echo 
    "<td>$row_sum[data]</td> ";
    echo 
    "<td>$row_sum[stato]</td> ";

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    28
    Grazie mille r1cky` :quote:


    FUNZIONA CORRETTAMENT

    Grazie per la collaborazione

    sandro

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    28
    Ciao r1cky`

    scusami se approfitto ancora della tua cortesia...

    Il suggeriemento che mi hai dato è stato prezioso.... però... ho un altro piccolo problema

    Allora io ho questo codice :

    echo "<tr>";
    echo "<td><center>Data</td> ";
    echo "<td><center>Chiusi</td> ";
    echo "</tr>";

    $rs_count = mysql_query ("select data, COUNT(*) AS statochiuso from utenti_ebay where stato = 'Chiuso' and data >= '$data_inizio' and data <='$data_fine' group by data order by data");

    while( $row_sum = mysql_fetch_array($rs_count)){

    echo "<tr>";
    echo "<td><center>$row_sum[data]</td> ";
    echo "<td><center>$row_sum[statochiuso]</td> ";
    echo "</tr>";
    }


    In questo modo mi estrae un report che mi indica il numero di utenti con lo stato "chiuso" suddiviso per data preso dal campo "stato".

    Io vorrei però che lo stesso report mi riportasse anche il numero degli utenti con lo "stato" = 'Numero errato' sempre suddiviso per giorno.

    Quindi mi dovrei trovare un report una colonna data , una colonna con gli stati "chiusi" e una colonna con gli stati "Numero errato" .

    Come posso fare ?

    ti ringrazio per il supporto

    sandro

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.