select abfrage einschränken

Fini

Grünschnabel
,

ich habe bisher diese selectabfrage:
Code:
SELECT name, plz FROM persodaten ORDER BY plz, name

allerdings wird es sehr unübersichtlich, wenn ich mit den daten weiterarbeiten möchte und am Schluss beispielsweise 30 leute mit der selben plz habe und dann wieder 20 mit derselben und diese nummer dann jedesmal angezeigt wird. gibt es eine möglichkeit die mir jede plz nur einmal ausgibt aber alle dazugehörigen namen?


Fini
 
Das kannst du nur bei der späteren Verarbeitung der Daten machen. Bei PHP wäre beispielsweise folgendes möglich:
PHP:
$tmp = null;
while( $row = mysql_fetch_assoc($result) ) {
	if( $row['plz'] != $tmp ) {
		if( !is_null($tmp) ) {
			echo '</ul>';
		}
		echo '<h3>'.$row['plz'].'</h3>';
		echo '<ul>';
		$tmp = $row['plz'];
	}
	echo '<li>'.$row['name'].'</li>';
}
if( !is_null($tmp) ) {
	echo '</ul>';
}
Dies lässt sich sicherlich auch auf andere Sprachen übertragen.
 
Hi,

da ich ttsächlich mit php die daten verarbeite hat das sehr gut gepasst und ich habe dein beispiel gleich mal ausprobiert.
allerdings zeigt er mir bei jeder plz nur den ersten namen an, die restlichen jedoch nicht. :confused:
 
also das ganz sieht jetzt so aus:
PHP:
$infos= mysql_query("SELECT name, plz FROM persodaten ORDER BY plz, name");


$tmp = null;
while( $row = mysql_fetch_assoc($infos) ) {
    if( $row['plz'] != $tmp ) {
        if( !is_null($tmp) ) {
            echo '</ul>';
        }
        echo '<h3>'.$row['plz'].'</h3>';
        echo '<ul>';
        $tmp = $row['plz'];
    }
    echo '<li>'.$row['name'].'</li>';
}
if( !is_null($tmp) ) {
    echo '</ul>';
}
 
Zurück