- Home
- Categorie
- Coding e Sistemistica
- PHP
- Elenco province ordinate per regione in php
-
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
-
[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
-
Perfetto!!
Grazie mille...
Ora devo sistemarlo un pò, inserendo una tabella e che tipo alla 20° riga vada sull'altra colonna.
-
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.
-
Puoi dare il link?
-
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
-
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
-
Mmmmh non saprei, anche facendono con gli elenchi, senza tabella come dovrei fare?
-
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.
-
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.
-
Che gran confusione
Grazie, ma niente
-
Alla fine si, ho provato con il codice postato da te e il css, il risultato è questo: