Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340

    un suggerimento per un select count?

    Salve ragazzi, sto cercando di far eseguire una select raggruppando le categorie di un dbase, per ottenere dei totali per categoria, ma non mi quadrano i totali.
    Ho creato 4 record per prova, devo ottenere questo totale 2 campi di calcio, 1 campo da tennis ed uno da basket ma ottengo sempre questo risultato :
    Calcio 2, tennis 2, basket 2!
    Provo a postare il codice, se qualcuno può darmi una mano....molto grato

    Codice PHP:

    // $id_reg  arriva con il codice della singola regione da selezionare

    function categoria($id_reg)
    {

    $datagestori = new MysqlClass();
    $datagestori->connetti();



    $query $datagestori->query("SELECT tipo_campo, COUNT(tipo_campo) FROM campi where id_reg ='$id_reg' GROUP BY tipo_campo");

     
    if(
    mysql_num_rows($query) > 0
      {  
        while(
    $row mysql_fetch_row($query))
                {
            
                     
    $esplica$datagestori->estrai($query);
                 
    $sport =$esplica->tipo_campo ;
                 
                echo 
    '<td>' .$sport'
    '
    .count($row). '</td>' ;
        }
     
    }
    $datagestori ->disconnetti();
    return;


  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Ho modificato la query
    Codice PHP:

    $query 
    $datagestori->query("SELECT tipo_campo, COUNT(tipo_campo) as totali  FROM campi where id_reg ='$id_reg' GROUP BY tipo_campo"); 
    il risultato cambia ma il totale campi calcio invece di darmi = 2
    mi segnala =1

    Qualcuno riesce a vedere cosa sto sbagliando ?

  3. #3
    SELECT tipo_campo, COUNT(*) as totali ......

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Grazie Phil per la risposta, avevo provato anche con count(*) ma non mi dà mai 2 campi di calcio!
    Ci sto sbattendo la testa, so che è la query sbagliata, ma non riesco a vedere l'errore!.
    Nel frattempo ho aggiunto qualche altro campo ed ho modificato la query cosi :

    Codice PHP:

    $datagestori 
    = new MysqlClass();
    $datagestori->connetti();


    $query $datagestori->query("SELECT tipo_campo, COUNT(*) as totali  FROM campi where id_reg ='$id_reg' GROUP BY tipo_campo");

     

    if(
    mysql_num_rows($query) > 0
      {  
          
            
         while (
    $row mysql_fetch_array($query)){
         
                echo 
    '<td>'.$row['tipo_campo'].'
    '
    .count('totali'). '</td>' ;
        }
     
    }
    $datagestori ->disconnetti();
    return; 
    Giusto per vedere anche il nome della categoria, ma nemmeno per sogno, il numero dei
    campi è sempre 1!!!

  5. #5
    Originariamente inviato da marcopa
    Ci sto sbattendo la testa, so che è la query sbagliata, ma non riesco a vedere l'errore!.
    no aspetta un momento...
    la query è giusta.

    se nel db hai
    TIPO_CAMPO
    calcio
    basket
    tennis
    calcio

    la
    select tipo_campo, count(*) from tba group by tipo_campo
    ti restituisce:
    calcio 2
    basket 1
    tennis 1

    quindi l'errore sarà o nel database,
    oppure nel id_reg che gli passi nella where

    fai così dopo la query metti
    echo $query e vedi quel è la select fatta effetivamente e se è quella che avevi in mente

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    la echo $query che mi hai consigliato di mettere mi restituisce
    Resource id #6
    Resource id #6
    Resource id #6

    ma nel database ho verificato i dati sono corretti ci sono 4 records
    e il valore che passa al id_reg è un intero corretto e corrispondente!!

    Non riesco a capire !!

  7. #7
    Originariamente inviato da marcopa
    la echo $query che mi hai consigliato di mettere mi restituisce
    Resource id #6
    Resource id #6
    Resource id #6

    scusa errore mio...non ho visto che usavi una classe
    fai così...
    Codice PHP:
    $select="SELECT tipo_campo, COUNT(*) as totali  FROM campi where id_reg =$id_reg GROUP BY tipo_campo";

    echo 
    $select;

    $query $datagestori->query($select); 

    Poi se id_reg è un intero allora togli gli apici, come ho fatto qui sopra....

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    E' assurdo!
    continua a cacciare fuori 1 solo campo di calcio!
    nel dubbio ho cancellato tutti i record, li ho reinseriti
    sempre 2 campi di calcio, 1 di basket ed 1 da tennis

    echo $select;
    Resource id #6

    ma è inspiegabile!!
    mi stanno venendo dei dubbi sul risultato di altre select di altri script!!

    scusa, la echo $select :

    SELECT tipo_campo, COUNT(*) as totali FROM campi where id_reg =14 GROUP BY tipo_campo

  9. #9
    fai una

    select * FROM campi;

    posta il risultato che ottieni dal db?

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    ho provato ad allegare il print_screen del risultato
    nel caso non ci sia, ha scritto da questa semplice riga
    Codice PHP:
     
     
    $select
    ="SELECT * from campi where id_reg =$id_reg "
    //$select="SELECT tipo_campo, COUNT(*) as totali  FROM campi where id_reg =$id_reg GROUP BY tipo_campo"; 


    $query $datagestori->query($select);


         while (
    $row mysql_fetch_array($query))
         {
             
                 echo 
    '<td>'.$row['tipo_campo'].'
    '
    .count('totali'). '</td>' ;
                 
         } 
    Tennis 1
    Calcio 1
    Basket 1
    Calcio 1


    Risultato
    Immagini allegate Immagini allegate

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 © 2024 vBulletin Solutions, Inc. All rights reserved.