Hi,
habe mehrere variablen mit Werten im positiven und negativen Bereich. Würde diese gerne sortieren.
Hat da jemand eine gute Funktion oder ähnliches. Wo kann man so etwas nachlesen.
Hi,
habe mehrere variablen mit Werten im positiven und negativen Bereich. Würde diese gerne sortieren.
Hat da jemand eine gute Funktion oder ähnliches. Wo kann man so etwas nachlesen.
Hallo,
http://www.modulepool.com/java-pool/Beispiele/bubble…
http://www.modulepool.com/java-pool/Beispiele/quicks…
beschreibt 2 bekannte Sortieralgorithmen (…in Java).
Ich glaube es gibt in php schon fertige Sortierfunktionen.
Schau mal unter
http://www.php.net/manual/en/ref.array.php
Gruss
Patrick
Hi!
hab keine Lösung, aber ein ähnliches Problem:
Ich lese aus einer Datenbank Werte aus (nicht nur Zahlen, sondern auch Worte) und möchte diese nun geordnet ausgegeben haben. wenn ich in den auslesesyntax ORDER BY schreibe tut sich leider nix
Hat jemand einen Tip wie ich das mache?
MfG
Timo
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
HI…
Ich glaub am besten ist es, die Variablen in ein Array zu
schreiben und sie dann zu sortieren. schon seit php3 gibt
einige array - Sortierfunktionen:
arsort
asort
ksort
krsort
rsort
sort
uasort
uksort
usort
Such am besten bei Google nach den Implementierungen… Sie
sind zwar ganz einfach…aber zu viel um sie hier her zu
schreiben…
Grüße und gutes Gelingen
Fabian
die ORDER BY funktion ist eigentlich schon die richtige und schnellste lösung, um daten sortiert aus der datenbank zu lesen.
man muss natürlich noch die spalte(n) angeben nach der/denen sortiert werden soll.
etwa so:
SELECT name, vorname, sonstirgendwas FROM gruppe ORDER BY name, vorname
hier wird zuerst aufwärts nach name sortiert und wenn es gleiche namen gibt, werden die nach vorname sortiert.
möchte man abwärts sortieren sähe das so aus:
SELECT name, vorname FROM gruppe ORDER BY name DESC, vorname DESC
gruss
ric
Hi!
hab keine Lösung, aber ein ähnliches Problem:
Ich lese aus einer Datenbank Werte aus (nicht nur Zahlen,
sondern auch Worte) und möchte diese nun geordnet ausgegeben
haben. wenn ich in den auslesesyntax ORDER BY schreibe tut
sich leider nix
Hat jemand einen Tip wie ich das mache?
MfG
Timo
die ORDER BY funktion ist eigentlich schon die richtige und
schnellste lösung, um daten sortiert aus der datenbank zu
lesen.
man muss natürlich noch die spalte(n) angeben nach der/denen
sortiert werden soll.
etwa so:SELECT name, vorname, sonstirgendwas FROM gruppe ORDER BY
name, vornamehier wird zuerst aufwärts nach name sortiert und wenn es
gleiche namen gibt, werden die nach vorname sortiert.möchte man abwärts sortieren sähe das so aus:
SELECT name, vorname FROM gruppe ORDER BY name DESC, vorname
DESCgruss
ric
Hi!
Also, wenn ich aus ner Datenbank mehrere Sachen auslese, mach ich des ja nach einer ID. Ich lass da immer eine variable hochzählen und lass mir dann die entsprechende Reihe ausgeben in einem Array:
for ($zaehler=1; $zaehler ausgabe in tabelle
}
das heisst, dass ich die einelnen Werte ja gar net zum Vergleichen hab um sie zu ordnen! Da muss ich das ganze anders auslesen, oder? Und wenn ja, wie mach ich des??
MfG
Timo
wenn ich das richtig sehe, holst du jedesmal nur einen einzigen datensatz aus der datenbank und fügst ihn dann in deine html-tabelle ein, aber du gehst sämtliche datensätze durch?!?
das ist natürlich möglich so, aber wenn man viele datensätze in der datenbank hat, ist das ganz und gar nicht performant, da für jeden einzelnen datensatz ein sql-kommando abgesetzt wird. normalerweise macht man das mit einem einzigen sql-kommando, was ungleich schneller ist!
in deinem fall wäre das schlicht:
SELECT * FROM table ORDER BY id
hier ist die sortierung dann natürlich die selbe wie wenn du deine schleife verwenden würdest. willst du nach einer anderen spalte sortieren, einfach id ersetzen (z.B. name).
was du dann zurückkriegst ist die komplette tabelle in $result.
jetzt kannst du bequem die tabelle durchgehen:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
// datensatz für datensatz
-> ausgabe in tabelle
// in der reihenfolge, wie im select angegeben :o)
}
ich hoffe, das war einigermassen verständlich.
gruss
ric
Hi!
Also, wenn ich aus ner Datenbank mehrere Sachen auslese, mach
ich des ja nach einer ID. Ich lass da immer eine variable
hochzählen und lass mir dann die entsprechende Reihe ausgeben
in einem Array:for ($zaehler=1; $zaehler ausgabe in tabelle
}das heisst, dass ich die einelnen Werte ja gar net zum
Vergleichen hab um sie zu ordnen! Da muss ich das ganze anders
auslesen, oder? Und wenn ja, wie mach ich des??
MfG
Timo
wenn ich das richtig sehe, holst du jedesmal nur einen
einzigen datensatz aus der datenbank und fügst ihn dann in
deine html-tabelle ein, aber du gehst sämtliche datensätze
durch?!?das ist natürlich möglich so, aber wenn man viele datensätze
in der datenbank hat, ist das ganz und gar nicht performant,
da für jeden einzelnen datensatz ein sql-kommando abgesetzt
wird. normalerweise macht man das mit einem einzigen
sql-kommando, was ungleich schneller ist!in deinem fall wäre das schlicht:
SELECT * FROM table ORDER BY id
hier ist die sortierung dann natürlich die selbe wie wenn du
deine schleife verwenden würdest. willst du nach einer anderen
spalte sortieren, einfach id ersetzen (z.B. name).was du dann zurückkriegst ist die komplette tabelle in
$result.
jetzt kannst du bequem die tabelle durchgehen:while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
// datensatz für datensatz
-> ausgabe in tabelle
// in der reihenfolge, wie im select angegeben :o)
}ich hoffe, das war einigermassen verständlich.
gruss
ric
THX
War verständlich . Musste zwar das MYSQL_ASSOC weglassen (was auch immer des bringt…) aber tut.
Hab zwar schon wieder das nächste Problem, aber jetzt will ich auch mal selber tüfteln
MfG
Timo
THX
War verständlich. Musste zwar das MYSQL_ASSOC weglassen
(was auch immer des bringt…) aber tut.
Hab zwar schon wieder das nächste Problem, aber jetzt will ich
auch mal selber tüfteln
MfG
Timo
MYSQL_ASSOC ist die option, die ich immer verwende. da kann man auf die daten eines datensatzes per feld-namen zugreifen. (z.b. $row[„name“]). die andere einstellung ist MYSQL_NUM. der zugriff erfolgt über die feld-id (z.b. $row[2]). hier ist man aber auf die reihenfolge festgelegt und hat dann ein problem, sobald man in der tabelle nachträglich ein feld einfügt, sodass sich die felder-reihenfolge verschiebt (z.b. ein neues feld „anrede“, welches man vor dem feld „name“ haben will…)
lässt man diese option komplett weg, sind standardmässig beide möglichkeiten aktiv. das wusste ich bis gerade eben auch nicht
gruss
ric