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

    [mysql] Problema nel select

    Ciao ragazzi io ho questo problema con mysql:

    una tabella dove contengono i dati dei comuni, province e regioni.

    io devo estrarre i comuni di quella regione e ordinarli dalla a alla z e fin qui semplice...

    Codice PHP:
     WHERE ID_PROVINCIA ='" . $id_provincia . "' ORDER BY  COMUNE ASC"; 
    adesso il problema è qui.... devo far in modo che il capoluogo della provincia sia la prima voce estratta e dopo tutto il resto... come fare? io avevo provato con questo:


    Codice PHP:
    $query "SELECT * FROM comuni WHERE ID_PROVINCIA ='" $id_provincia "' ORDER BY COMUNE = '$provincia'  DESC, COMUNE ASC"
    stampare... stampa, a prima vista sembra funzioni... il codice html è corretto... ma se seleziono una voce mi da l'id precedente

    cioè in un esempio di milano.. se seleziono milano mi da zibido san giacomo che è l'ultima voce, selezionando zibido mi salva nel db la voce precedente cioè zelo surrigone... io per salvare milano dovrei scegliere la voce successiva cioè abbadia cerreto..

    come posso risovere? grazie a tutti, so che è difficile... ciao
    Codice PHP:
    WHERE ID_PROVINCIA ='" . $id_provincia . "' ORDER BY COMUNE ASC"; 

  2. #2
    Dovresti avere un campo che indichi qual'e il capoluogo di provincia. Altrimenti come potresti sapere di quale citta' si tratti?

    andrebbe bene un campo con 0/1 es: con nome capoluogo

    Poi ordini per capoluogo, comune.

    ORDER BY capoluogo, COMUNE ASC

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

  3. #3
    $query = "SELECT * FROM comuni WHERE ID_PROVINCIA ='" . $id_provincia . "' ORDER BY COMUNE = '$provincia' DESC , COMUNE ASC";
    Ma con questa query non ottini alcun errore???
    Io non ho mai visto una dicitura come quella che ti ho messo in grassetto.

    Ad ogni modo, credo che per quello che vuoi fare te, la query debba essere un po' più complessa.
    Come prima cosa, credo sia il caso di aggiungere un campo alla tabella dei comuni: ci puoi inserire un identificativo, tipo 0 per il capoluogo di regione, 1 per capoluogo di provincia e 2 per il semplice comune.
    Questo perché per ogni comune puoi settare la provincia di appartenenza ed utilizzare GROUP BY per raggruppare tutti i comuni della stessa provincia, magari in ordine di NOME ASC (quindi in ordine alfabetico).

    Torno a ripetere: il problema non è solo nella query, ma nella struttura della tabella.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: [mysql] Problema nel select

    Originariamente inviato da php_programmer
    stampare... stampa, a prima vista sembra funzioni... il codice html è corretto... ma se seleziono una voce mi da l'id precedente
    che significa "seleziono una voce"?
    Avrai qualche errore nel codice html che butti fuori, non è certo colpa della query.
    Che peraltro, così come l'hai fatta, funziona solo dando per scontato che il capoluogo di provincia si chiami come la provincia.. il che non è sempre vero

  5. #5
    Ciao ragazzi e grazie per la risposta....

    Ma con questa query non ottini alcun errore???
    no non ottengo errori... ma non sei il primo che me lo chiede...

    il risultato html è questo


    <option value='2158'>MILANO</option><option value='2068'>ABBADIA CERRETO</option><option value='2118'>ABBIATEGRASSO</option><option value='1988'>AGRATE BRIANZA</option><option value='1984'>AICURZIO</option><option value='2103'>ALBAIRATE</option>
    dovee 2158 sta per milano e 2068 sta per abbaddia... quindi l'outpu dell'html è corretto, ma sembra come se l'array facesse un gradino...

  6. #6
    io devo selezionare prima il capoluogo e poi tutti i comuni in ordine alfabetico.
    sapendo solo il codice del capoluogo come posso fare?

  7. #7
    Originariamente inviato da php_programmer
    io devo selezionare prima il capoluogo e poi tutti i comuni in ordine alfabetico.
    sapendo solo il codice del capoluogo come posso fare?
    Se conosci il codice del capoluogo allora prova con UNION

    esempio:

    codice:
    select * from tabella
    where provincia = '$provincia'
    and comune = '$cod_capoluogo'
    UNION
    (select * from tabella
    where provincia = '$provincia'
    and comune NOT IN ($cod_capoluogo)
    order by comune)

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

  8. #8
    io l'ho rifatta in questo modo:

    passo 1:
    Sapendo la $provincia, nel mio caso è 13 che equivale a lombardia
    Codice PHP:
    $query "SELECT * FROM comuni WHERE COMUNE ='" $provincia "'"$result mysql_query($query) or die (mysql_error()); while ($row mysql_fetch_array($result)) { $id_comune $row[id_comuni]; // qui estraggo l'identificatore del comune della provincia eg milano = 5180 } 
    l'id coune viene estratto correttamente.

    passo 2:
    apro il selec e tiro fuori la prima opzione che è milano.
    Codice PHP:
    echo ' <div class="form-row"> <div class="field-label"><label for="field1">Comune*</label>:</div> <div class="field-widget"> <select name="comune" id="field1" class="required" style="width:230px;">'; echo "<option value='$id_comune'>$provincia</option>"
    passo 3:
    estraggo tutti i risultati dal db compreso milano per non avere problemi.
    Codice PHP:
    $query "SELECT * FROM comuni WHERE ID_PROVINCIA ='" $id_provincia "' ORDER BY `COMUNE` ASC"$result mysql_query($query) or die (mysql_error()); while ($row mysql_fetch_array($result)) { $id_comune $row['id_comuni']; $id_regione $row['ID_REGIONE']; $comune $row['COMUNE']; echo "<option value='$id_comune'>$comune</option>"; } echo "</select> 
    risultati:
    non cambiano... se seleziono milano esce zibido. io ho provato senza la seconda query, nelle opzioni usciva fuori solo milano e nel db si salvava solo milano.... dove sta questo errore???

  9. #9
    una domanda?

    fai finta di essere tu mysql. Come faresti a sapere che Milano e' il capoluogo della provincia omonima e pure della regione Lombardia?

    Gia' a partire dalla tua prima affermazione cadono le braccia...

    Sapendo la $provincia, nel mio caso è 13 che equivale a lombardia
    che vorresti dire?

    Credo che, come qualcuno ti ha gia' detto, sia da rivedere la struttura del database

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

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    edit

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.