php.de

Zurück   php.de > php.de Intern > Wiki Diskussionsforum > Tutorials

Tutorials Hier findest Du Tutorials, welche nach und nach ein fertiges Script ergeben. Sehen, lernen & verstehen!

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
Alt 16.05.2007, 13:01  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard PHP/MySQL: Datensätze gruppiert nach Anfangsbuchstabe

PHP-Code:
<?php
mysql_connect
('localhost''***''***');
mysql_select_db('***');

// array_combine existiert erst seit PHP 5
if (!function_exists('array_combine')) {
    function 
array_combine($keys$values)
    {
        
// nicht ganz die selbe Funktionalität
        
$combined = array();
        for (
$i 0$x min(count($keys), count($values)); $i $x; ++$i) {
            
$combined[$keys[$i]] = $values[$i];
        }
        
// aber ausreichend
        
return $combined;
    }
}

// Funktion die uns den Anfangsbuchstaben eines Strings liefert
// mit der Besonderheit Umlaute auf das 26-Buchstaben-Alphabet umzulegen (leider manuell)
function getInitial($string)
{
    
$initial $string{0};
    if (
preg_match('/^[a-z]$/i'$initial)) {
        return 
strtoupper($initial);
    }
    switch (
$initial) {
        case 
'ä': case 'Ä':
            return 
'A';
        case 
'ö': case 'Ö':
            return 
'O';
        case 
'ü': case 'Ü':
            return 
'U';
        default:
            
// Anfangsbuchstabe ein anderes Zeichen? Dann Raute als Default
            
return '#';
    }
}

// Query zur Abfrage
$sql "SELECT `interpret`, `album`, `trackanzahl` FROM `alben` ORDER BY `interpret` ASC";
$res mysql_query($sql) or die(mysql_error());
// Schlüssel zwischen A-Z erstellen
$keys range('A''Z');
$keys[] = '#'// Raute für unbekannte Zeichen
// Die Werte sollen leere Arrays sein
$values array_fill(027, array());
// Das ganz kombinieren und wir erhalten unsere leere $data-Maske, deren Schlüssel das Alphabet
// und die Raute und deren Werte leere Arrays sind
$data array_combine($keys$values);
while (
$line mysql_fetch_assoc($res)) {
    
// Anfangsbuchstaben ermitteln
    
$initial getInitial($line['interpret']);
    
// und den $data Array dahingehend füllen
    
$data[$initial][] = $line;
}
// Den Array durchlaufen
foreach ($data as $initial => $group) {
    
// Den Anfangsbuchstaben ausgeben
    
printf('<hr />%s
'
$initial);
    for (
$i 0$x count($group); $i $x; ++$i) {
        
// Und natürlich noch die aus der Datenbank zugeordneten Gruppen
        
printf('%u: %s
'
$i 1implode(', '$group[$i]));
    }
}
// Fertig
?>
Ausgabe:

Code:
A
B
C
D
E
F
1: fünfzig cent, get rich or die tryin', 12
G
H
I
J
K
L
M
N
O
1: öde band, öde lieder, 5
P
Q
R
S
1: scooter, hyper hyper, 1
2: scooter, how much is the fish, 1
T
U
V
W
X
Y
Z
#
1: 50 cent, get rich or die tryin', 12
Zergling-new ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.04.2008, 09:36  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

[offtopic]
Was mich da an deinem Beitrag besonders interessiert ist die Ausgabe der Titel.

2 mal Scooter, find ich cool...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 10.04.2008, 10:06  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich hab noch ganz andere Maxi-CDs von meinem 16. Geburtstag daheim rumliegen ..
Zergling-new ist offline   Mit Zitat antworten
Alt 10.04.2008, 10:33  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Auch alles in Richtung Scooter? Und vor allem, wie lange ist es her dein 16. Jähriger Geburtstag?
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 10.04.2008, 15:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.253
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

"get rich or die tryin" sag ich da nur. Bei switch heißt der aber Fuffzich Cent und kommt als angemalter Hoëcker daher...
nikosch ist gerade online   Mit Zitat antworten
Alt 10.04.2008, 17:46  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Das ist schon 10 Jahre her Kennt jemand noch "kleine Maus" von "das Modul"? LOL

Fuffzich Cent ist genial bei switch, vor allem aber auch der, der den Volksmusikfutzi spielt.
Zergling-new ist offline   Mit Zitat antworten
Alt 10.04.2008, 18:01  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von Zergling
Das ist schon 10 Jahre her Kennt jemand noch "kleine Maus" von "das Modul"? LOL
Ja das kenne ich zur genüge, hab alle scheiben hier...

Blümchen und co...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 10.04.2008, 19:42  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.253
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

... auf der Da-ten-autobahn...

Wenn das mal keine Inspiration für H. Schneiders Welthit "Ich drück die Maus" war!
Kostprobe?
Zitat:
Zitat von Helge Schneider
[...]
Ich drück die Maus, ich sitz zuhaus! Ich sitz zuhaus, ich drück die Maus! Ich drück zuhaus, ich sitz zu Maus! Ich fick die Maus, ich fick die Maus! Ich schlitz die Maus auf! Der Computer ist aus! Ich drück die Maus, da ist er an! Ich drück die Maus, ich sitz zuhaus! Ich drück zuhaus! Ich drück zuhaus! Hey got the got the oh! Ne oh! Come on!
[...]
Das meine Herren ist ganz großes Tennis!
.
nikosch ist gerade online   Mit Zitat antworten
Alt 10.04.2008, 21:18  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von nikosch77
... auf der Da-ten-autobahn...

Wenn das mal keine Inspiration für H. Schneiders Welthit "Ich drück die Maus" war!
Kostprobe?
Zitat:
Zitat von Helge Schneider
[...]
Ich drück die Maus, ich sitz zuhaus! Ich sitz zuhaus, ich drück die Maus! Ich drück zuhaus, ich sitz zu Maus! Ich §$%! die Maus, ich §$%! die Maus! Ich schlitz die Maus auf! Der Computer ist aus! Ich drück die Maus, da ist er an! Ich drück die Maus, ich sitz zuhaus! Ich drück zuhaus! Ich drück zuhaus! Hey got the got the oh! Ne oh! Come on!
[...]
Das meine Herren ist ganz großes Tennis!
.

Looool, da haste recht, ganz großes Kino
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 06.03.2009, 12:37  
Benutzer
 
Registriert seit: 06.03.2009
Beiträge: 46
Shen befindet sich auf einem aufstrebenden Ast
Standard

Um mal wieder zum Thema zurück zu kehren:

Das ist ein super Script, danke dafür.
Ich habe dieses Script soweit zum Laufen gebracht.

Aber ich würde gerne eine Erweiterung vornehmen, weiß aber nicht wie das umzusetzen wäre:

Im jetzigen Tutorial werden interpret, album und trackzahl zusammen ausgegeben.
Ich lese bei mir auch mehrere Spalten aus der DB aus und würde gerne am Ende die einzelnen Spalten getrennt auflisten können, sodass die Werte der Spalten einzeln nutzbar sind.

Kann mir da jemand von euch einen Tipp geben, wie das möglich ist?

Geändert von Shen (06.03.2009 um 12:41 Uhr).
Shen ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/tutorials/44051-php-mysql-datensaetze-gruppiert-nach-anfangsbuchstabe.html
Erstellt von For Type Datum
Ausgabe sortieren - ABAKUS This thread Refback 16.10.2009 00:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/tutorials/44051-php-mysql-datensaetze-gruppiert-nach-anfangsbuchstabe.html, php anfangsbuchstabe, php if anfangsbuchstabe, anfangsbuchstabe php, php string anfangsbuchstabe, php array anfangsbuchstaben, array nach anfangsbuchstaben auflisten, anfangsbuchstaben string php, mysql anfangsbuchstabe, php mysql daten nach alphabet, sql gruppiert nach buchstaben, mysql count anfangsbuchstabe, mysql abfrage nach anfangsbuchstabe, sql nach anfangsbuchstaben gruppieren, php array nach alphabet gruppieren, php liste nach anfangsbuchstaben, mysql anfangsbuchstaben gruppieren, mysql gruppieren anfangsbuchstabe, php datensätz nach alphabet, php nach buchstaben gruppieren

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.