PHP Untersortierung einer Sortierung

Frog33r

Lieutenant
Registriert
Jan. 2011
Beiträge
654
Hallo,

mit PHP und MySQL habe ich ein kleines Verzeichnis für Rufnummern erstellt, das ID, Name, Gerät, Rufnummer, Abteilung und Firma als Spalten in einer Tabelle enthält. :)

Wenn man alle Datensätze anzeigen will kann man noch mit einem Radio-Button auswählen, nach was man das Ergebnis sortiert haben will. Sortiert man nach Abteilung, werden aber die Namen nicht alphabetisch geordnet, sondern wie sie in die Tabelle gespeichert wurden. :freak:

Wie kann ich erreichen, dass diese Sortierung nochmals eine Untersortierung nach Name enthält?


Gruß
Frog33r
 
Code:
SELECT ...
ORDER BY
  Abteilung ASC,
  Nachname ASC,
  Vorname ASC
 
Hallo,

kleines Ding, große Wirkung... Danke!


Edit:

Um keinen neuen Thread aufzumachen, stelle ich eine weitere Fragen nochmal hier herein.

Bei meinem Rufnummernverzeichnis kann ich leider nicht nach den Umlauten oder "ß" suchen. Wenn ich alle Datensätze ausgeben lasse, zeigt er mir hierfür Kästchen an. Wie kann ich das beheben?


Edit 2:

Die Zeichenkodierung habe ich sowohl auf der PHP-Datei, als auch in der Tabelle geändert...


Gruß
Frog33r
 
Zuletzt bearbeitet:
<?php

header("Content-Type: text/html; charset=utf-8");
?>

vielleicht hilft das.
Es spielen allerdings viele sachen eine rolle:
was für ein encoding ist in html eingestellt.. was im header, was gibt mysql aus; wie sind die daten in der datenbank gespeichert usw.. viele verschiedene dinge. Aber vielleicht hilft das ja ;)
 
Hallo,

@PW-toXic: Nachdem in Deinen Code bei mir eingefügt habe, erscheint folgende Fehlermeldung: "Warning: Cannot modify header information - headers already sent by [...] on line 109." (Zeile 109 ist die Zeile mit dem Code.)


Gruß
Frog33r
 
Hallo,

mein Problem besteht weiterhin. Aktueller Stand:

1. Den Header als erste Zeile in den ersten PHP-Code eingefügt.
2. Den Meta-Tag mit UTF-8 eingefügt.
3. Die PHP-Datei als UTF-8 gespeichert.
4. Die Tabelle als "utf8_general_ci" gespeichert.


Edit:

5. "mysql_set_charset('utf8');" vor der Verbindung mit der Datenbank hat das Problem gelöst. Danke!


Gruß
Frog33r
 
Zuletzt bearbeitet:
Nach Aufbau der Datenbankverbindung sollte im Zweifel als allererstes ein "SET CHARACTER SET utf8" als Query rausgepumpt werden. Das behebt eine Menge Unstimmigkeiten mit der Kommunikation zwischen PHP und MySQL.
 
Hallo,

@PW-toXic: Bei der Ausgabe wird genau das angezeigt, das auch in der Tabelle gespeichert ist. Soll noch etwas anderes angezeigt werden?


Gruß
Frog33r
 
PW-toXic schrieb:
Was dir alles nicht hilft, wenn du nicht weisst in welchem charset die Inhalte in der Datenbank eingetragen worden sind ;)
Ja, das ist klar...
Aber zumindest werden mit der Maßnahme alle zukünftigen Daten wenigstens anständig geschrieben. Für bestehende Daten muss man einfach nur ein cleveres Script schreiben, dass Datensätze holt, auf ihr Encoding prüft und, sollte es nciht utf-8 sein, sie in utf-8 umwandelt und neu schreibt.
Bei ner Millionen Einträgen (z.B. Branchenbuch) ist das zwar eine recht zähe Angelegenheit, aber es ist machbar. Es wäre nur ratsam, dass PHP-Script über ne Shell anzustoßen, um die Max Execution Time zu umgehen.
 
Zurück
Oben