Aiuto Per Ordinare Risultati Ricerca Da File CSV

T.W.

Nuovo Utente
25 Nov 2012
12
0
0
Salve a tutti! Mi sono iscritto da poco anche se vi seguo da anni, imparando tanto dal vostro sito.
Chiedo il vostro prezioso aiuto, scusandomi anticipatamente per la mia ignoranza in php.
Ho realizzato questo script chiamato "provincia.php" che ha il compito di cercare all'interno di un file csv
i nominativi appartenenti ad una determinata provincia.

PHP:
<?php echo "<form method='get' action='provincia.php'>
	<select name='provincia' onchange='submit()'>
	<option value=''>Seleziona Provincia</option>
	<option value='Roma'>Roma</option>
	<option value='Milano'>Milano</option>
	<option value='Torino'>Torino</option></select><ul>";
if (!empty ($_GET['provincia'])) {
	$merk = $_GET['merk']; $file_handle = fopen("lista.csv", "r");
while (!feof($file_handle)) {
	$parts = fgetcsv($file_handle, 8000, "#"); $pos = stristr($parts[0], $provincia);
	{
if ($pos === false) { ; }
              else { $parts[0] = ucwords(strtolower($parts[0])); echo "<li>$parts[0]</li>"; }
}}}
echo "</ul>"; ?>

Lo script anche se rozzo funziona bene, ma vorrei che mi stampasse in maniera ordinata gli elementi contenuti nel file "lista.csv"
da così...
Cognome Nome | Nome Via, xx | Nettuno | Roma | 333/3333333 | [email protected]
a così...
Cognome Nome
Nome Via, xx
Nettuno
Roma
333/3333333
[email protected]

Ringrazio anticipatamente coloro che mi daranno una mano. :fonzie:
 
Ultima modifica di un moderatore:
ciao
prova così, al massimo non funzia
PHP:
<?php
echo "<form method='get' action='provincia.php'>
    <select name='provincia' onchange='submit()'>
    <option value=''>Seleziona Provincia</option>
    <option value='Roma'>Roma</option>
    <option value='Milano'>Milano</option>
    <option value='Torino'>Torino</option>
	</select>";
	//dove chiudi il form </form> ??
if (!empty ($_GET['provincia'])) {
    $merk = $_GET['merk'];
	$file_handle = fopen("lista.csv", "r");
	echo "<ul>":
	while (!feof($file_handle)) {
    	$parts = fgetcsv($file_handle, 8000, "#");
		$pos = stristr($parts[0], $provincia);
    //{ 
		if ($pos === false) {
			;//....
		}else {
			$parts[0] = ucwords(strtolower($parts[0]));
			//echo "<li>$parts0]</li>"; }
			//se la riga $parts[0] contiene come hai detto Cognome Nome | Nome Via, xx | Nettuno | Roma | 333/3333333 | [email protected]
			//esplodi in basse al divisore |
			$testo=explode("|",$parts[0]);
			foreach($testo as $ch => $val){
				echo "<li>$val</li>";
			}
		}
	}
	echo "</ul>";
}
?>
poi un piccolo consiglio: se riinvia alla sessa pagina usa
PHP:
<?php
echo "<form method='get' action='$_SERVER['PHP_SELF']'>
	....ecc...";
	//.....
?>
se poi devi proseguire il lavoro è meglio metod='post' sostituendo poi i $_GET con $_POST
 
Ciao Borgo Italia!
Grazie infinitamente per il tuo grande aiuto e per la tempestività, dimostrazione che siete davvero grandi.
Allora, ho sviluppato lo script corretto da te in questo modo...
if (!empty ($_GET['provincia'])) {
$merk = $_GET['merk'];
$file_handle = fopen("lista.csv", "r");
echo "Nella provincia di $provincia sono stati trovati i seguenti nominativi:";
while (!feof($file_handle)) {
$parts = fgetcsv($file_handle, 8000, "#");
$pos = stristr($parts[0], $provincia);
if ($pos === false) {
;
} else {
$parts[0] = ucwords(strtolower($parts[0]));
$testo=explode("|",$parts[0]);
foreach($testo as $ch => $val){
echo "$val <br />"; }
echo "<hr />"; } }
echo "<h5>Ricerca terminata.</h5>";
}
E funziona alla grande. Grazie mille ancora!!! C'è però una piccola curiosità che volevo chiederti (a scopo didattico) per quanto riguarda la linea
$parts = fgetcsv($file_handle, 8000, "#");
Nella lista csv non è presente nessun carattere cancelletto, se a questo sostituisco il carattere pipe "|", non mi mostra nessuna ricerca. Qualche consiglio?
 

Discussioni simili