• User Attivo

    Elenco province ordinate per regione in php

    Salve, ho questo problemino:
    mi servirebbe creare l'elenco come questo: bakeca.it/home.php
    Ho provato con il seguente codice, ma la province vengono solo per il Veneto.
    Eecco il foto per farvi vedere cosa ottengo:
    i49.tinypic.com/2sb022f.png

    [PHP]
    $nomeTabProv = $tbl_prefix."provincia";

    $queryReg = "SELECT * FROM $nomeTabProv GROUP BY regione ORDER BY regione";
    $sqlReg = @mysql_query($queryReg);
    if (($sqlReg) AND (mysql_num_rows($sqlReg)>0))
    {
    while($datiReg = mysql_fetch_array($sqlReg))
    {
    $nomeReg = ucfirst(stripslashes($datiReg['regione']));
    $linkReg = str_replace(array("'"," "),"_",strtolower($nomeReg));
    echo("<b>$nomeReg </b><br>");
    }
    }

    $queryProv = "SELECT * FROM $nomeTabProv WHERE regione = '$nomeReg' GROUP BY pr ORDER BY pr";
    $sqlProv = @mysql_query($queryProv);
    if (($sqlProv) AND (mysql_num_rows($sqlProv)>0))
    {
    while($datiProv = mysql_fetch_array($sqlProv))
    {
    $nomeProv = ucfirst(stripslashes($datiProv['nome_prov']));
    $linkProv = str_replace(array("'"," "),"",strtolower($nomeProv));
    echo('<li><a href="'.$docRoot.'tpl
    ');
    if ( (isset($cercaTrova)) AND ($cercaTrova == "cerco") )
    echo('cerca');
    echo('lavoro_cat.php?reg='.$linkReg."-".$linkProv.'">'.$nomeProv.'</a></li>');
    }
    }
    [/PHP]

    Grazie


  • User Attivo

    [PHP]
    $nomeTabProv = $tbl_prefix."provincia";

    $queryReg = "SELECT * FROM $nomeTabProv GROUP BY regione ORDER BY regione";
    $sqlReg = @mysql_query($queryReg);
    if (($sqlReg) AND (mysql_num_rows($sqlReg)>0))
    {
    while($datiReg = mysql_fetch_array($sqlReg))
    {
    $nomeReg = ucfirst(stripslashes($datiReg['regione']));
    $linkReg = str_replace(array("'"," "),"",strtolower($nomeReg));
    echo("<b>$nomeReg </b><br>");
    $queryProv = "SELECT * FROM $nomeTabProv WHERE regione = '$nomeReg' GROUP BY pr ORDER BY pr";
    $sqlProv = @mysql_query($queryProv);
    if (($sqlProv) AND (mysql_num_rows($sqlProv)>0))
    {
    while($datiProv = mysql_fetch_array($sqlProv))
    {
    $nomeProv = ucfirst(stripslashes($datiProv['nome_prov']));
    $linkProv = str_replace(array("'"," "),"
    ",strtolower($nomeProv));
    echo('<li><a href="'.$docRoot.'tpl_');
    if ( (isset($cercaTrova)) AND ($cercaTrova == "cerco") )
    echo('cerca');
    echo('lavoro_cat.php?reg='.$linkReg."-".$linkProv.'">'.$nomeProv.'</a></li>');
    }
    }
    }
    }

    [/PHP]
    Prova così, ho semplicemente spostato il ciclo delle provincie in quello delle regioni


  • User Attivo

    Perfetto!!
    Grazie mille...
    Ora devo sistemarlo un pò, inserendo una tabella e che tipo alla 20° riga vada sull'altra colonna.


  • User Attivo

    Ecco il codice che ho ora, solo che mi sono confuso con la tabella, ora ho un elenco in verticale.
    Io correi avere l'elenco in 3 colonne (tipo che alla 20° riga vada a capo sull'altra colonna).
    Ma non riesco..

    [PHP]
    $nomeTabProv = $tbl_prefix."provincia";
    $i = 0;

    $queryReg = "SELECT * FROM $nomeTabProv GROUP BY regione ORDER BY regione";
    $sqlReg = @mysql_query($queryReg);

    if (($sqlReg) AND (mysql_num_rows($sqlReg)>0))
    {
    echo("<table bgcolor='#F5F5F5' width:'500px' border='1'>");
    $i++;
    while($datiReg = mysql_fetch_array($sqlReg))
    {
    $i++;
    $nomeReg = ucfirst(stripslashes($datiReg['regione']));
    $linkReg = str_replace(array("'"," "),"",strtolower($nomeReg));
    echo("<tr><td width='150px'><b>$nomeReg</td></tr></b>");
    $queryProv = "SELECT * FROM $nomeTabProv WHERE regione = '$nomeReg' GROUP BY pr ORDER BY pr";
    $sqlProv = @mysql_query($queryProv);
    if (($sqlProv) AND (mysql_num_rows($sqlProv)>0))
    {
    while($datiProv = mysql_fetch_array($sqlProv))
    {
    // $nomeProv = ucfirst(stripslashes($datiProv['nome_prov']));
    $siglaProv = ucfirst(stripslashes($datiProv['pr']));
    $linkProv = str_replace(array("'"," "),"
    ",strtolower($siglaProv));
    echo('<tr><td><li><a href="'.$docRoot.'tpl_');
    if ( (isset($cercaTrova)) AND ($cercaTrova == "cerco") )
    echo('cerca');
    echo('lavoro_cat.php?reg='.$linkReg."-".$linkProv.'">'.$siglaProv.'</a></td></li>');
    if ($i == 15)
    {
    $i = 0;
    echo("<br><br>");
    }
    else
    if ($siglaProv != "VR")
    echo("</tr>");
    }
    }
    }

    }
    echo("</table>");
    [/PHP]

    C'è sicuramente qualche tr o td in posto sbagliato.
    Grazie.


  • User Attivo

    Puoi dare il link?


  • User Attivo

    Non ho un link, stò lavorando in locale.
    Con quel codice ho questo risultato:
    i48.tinypic.com/24m8hoh.png
    Io vorrei avere questo risultato in un unica tabella:
    i46.tinypic.com/1z68p01.png


  • User Attivo

    Il fatto è che le provincie vengono date di seguito, quindi in verticale. In HTML non si possono aggiungere colonne, almeno a quanto sappia io, dopo la creazione della tabella, ma solo continuare ad aggiungere righe. Investigherò xD

    EDIT: Il sito da cui stai prendendo spunto usa gli elenchi, non le tabelle. Forse è per questo che riesce


  • User Attivo

    Mmmmh non saprei, anche facendono con gli elenchi, senza tabella come dovrei fare?


  • User Attivo

    Te lo scrivo in modo molto schematico, poi dovrai inserire tu tutto il tuo lavoro
    [PHP]
    $contatore = 0;
    echo "<ul class='col'>";
    //$regioni è ciò che prendo dal database per la regione
    while($regioni = mysql_fetch_array($regioni))
    {
    echo "<li>".$regioni['nome'];
    $contatore++;
    echo "<ul>";
    //solita query che non trascrivo
    while($provincie = mysql_fetch_array($provincie))
    {
    echo "<li>".$provincie['nome']."</li>";
    $contatore++;
    }
    echo "</ul>";
    if($contatore >= 15)
    {
    $contatore = 0;
    echo "</ul><ul class='col'>";
    }
    }
    echo "</ul>";
    [/PHP]

    Forse dovrebbe andare, tieni conto che l'ho scritto adesso molto a caso... cioè, ci stavo pensando ma non l'ho nè testato, nè nulla. Spero soprattutto non ci siano stati errori di battitura, provalo.


  • User Attivo

    Quasi mi scordavo i css:
    [CSS]
    .col{font-weight:bold;color:#ff7200;float:left;margin-left:5px;padding:18px 0;width:116px}
    .col ul{font-weight:normal;font-size:0.9em;margin:5px 0 20px;line-height:18px}
    .col ul a{color:#786953;text-decoration:none}
    .col ul a:hover{text-decoration:underline}
    [/CSS]
    Questo è un puro copia-incolla degli stili riportati dal sito che mi hai fornito.
    Non mi sembra di aver visto copyright, ma per sicurezza ti consiglio di modificarlo.


  • User Attivo

    Che gran confusione 😄
    Grazie, ma niente


  • User Attivo

    Alla fine si, ho provato con il codice postato da te e il css, il risultato è questo:

    i50.tinypic.com/k0qaol.png