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

    Problema con query group by

    Ho una query col group by x non ripetere + volte lo stesso risultato solo che se x lo stesso campo trova una corrispondenza e una no non lo stampa, io vorrei che lo stampasse anche se ne trova 1 ma se ne trova 10 me ne stampi una sola, spero di essermi spiegato.... :master:

  2. #2
    spiegati meglio...proprio non si capisce! VVoVe:

  3. #3
    ho una tabella in cui può essere iscritta + volta nel campo agenzia la stessa agenzia, quando faccio la query a questa tabella però voglio che mi stampi 1 sola volta il nome dell'agenzia e questo si fa con group by giusto? però secondo la mia query se x quell'agenzia trova 1 risultato su 25 volte magari che compare nella tabella nn stampa il risultato. se tolgo il group by funziona ma ovviamente x determinate query mi stampa la richiesta + volte. come posso fare?

  4. #4
    non sono ancora riuscito a capire realmente cosa devi fare...ma se mi dici che tu vuoi visualizzare 1a volta il campo agenzia anke se nella tabella ne sono presenti più di una con lo stesso nominativo,potrebbe essere una soluzione questa query:

    codice:
    $query = "select distinct agenzia from table order by id.";

  5. #5
    me la scrive 2 volte adesso però io voglio solo selezionare il distinct per agenzia, per selezionare normalmente altri campi senza il distinct con la stessa query invece?

  6. #6
    senza il distinct:

    codice:
    SELECT * FROM table
    *=tutto,se no specifichi i nomi dei campo che vuoi selezionare!

  7. #7
    $search2 = "SELECT * from visite where $search10 AND città like '%$città%' group by agenzia order by agenzia";
    $query2 = mysql_query($search2);
    while ($data = mysql_fetch_array($query2)) {
    $date_array=getdate($data[data]);

    if(($periodo=="Tutto") || ($periodo==$date_array[mon])) {
    if($date_array[year]==$anno) {
    echo"<tr><td>
    $data[agenzia], <a href=\"visite.php?PHPSESSID=".session_id()."&id=$d ata[idag]\" class=\"b\">clicca qui per le specifiche dell'azienda......</a>

    </td></tr>";
    }
    }
    }

    questa è la query e ora capisco xchè non va: quando va a fare il group by è come se prendesse solo l'ultima riga della tabella visite corrispondente a quell'agenzia per cui se faccio la ricerca per i dati che corrispondono a quell'ultima riga (cioè al mese della visita voluto) mi da il risultato altrimenti no. Però lui dovrebbe controllare prima i dati di tutte le righe e se ne trova almeno 1 di scrivere il nome dell'agenzia o nell'eventualità scriverlo 1 volta anche se ne trova 10 ma col group li somma prima :P

  8. #8
    hai risolto....?

  9. #9
    si così ho rivoluzionato tutto, sbagliavo la query io :P

    $dateprim=mktime(0, 0, 0, $periodo, 1, $anno);
    $datefin=mktime(23, 59, 59, $periodo, $gionofinmes, $anno);

    $search2 = "SELECT * from visite where $search10 AND città like '%$città%' AND data>='$dateprim' AND data<='$datefin' group by agenzia order by agenzia";
    $query2 = mysql_query($search2);
    while ($data = mysql_fetch_array($query2)) {
    $date_array=getdate($data[data]);

    echo"<tr><td>
    $data[agenzia], <a href=\"visite.php?PHPSESSID=".session_id()."&id=$d ata[idag]\" class=\"b\">clicca qui per le specifiche dell'azienda......</a>

    </td></tr>";
    }

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