Forum
Tipps
News
Menu-Icon

mysql ORDER mit bestimmten Datensatz anfangen

Hallo
Ich habe ein Problem und zwar möchte ich Datensätze aus einer Mysql-Tabelle abfragen.
Soweit kein Problem.
In der Tabelle sind User aufgeführt. Nun sollen diese User geordnet werden. Und zwar soll die Ordnung so sein, dass der eingeloggte User sich als erstes sieht und dann die übrigen User.
Die ID vom User ist in einer session gespeichert. Aber wie erkläre ich der Abfrage, dass er mit diesem Datensatz ( User_id) anfängt und danach die anderen User abfragt.

also irgendwie so

SELECT * FROM user ORDER BY id, START WHERE id=$_SESSION[user_id]

Ja das wäre schön, wenn dass so ginge  ;D;D;D

Man könnte natürlich zwei abfragen machen, aber das halte ich nicht für sehr gut, da es sich eigentlich um einen Wochenplaner handelt, an dem der eingeloggte User natürlich an erster Stelle stehen soll.
Abfrage 1: WHERE user_id=$Session["user_id"]
Abfrage 2 WHERE user_id!=$Session["user_id"]

Allerdings muss ich dann wieder alles in ein Array setzen, um die Termine richtig zuzuordnen.

Ich hoffe das ist so einigermaßen verstanden. Ich habe nix im Internet gefunden, aber an meiner Schreibweise merkt man wohl, dass ich nicht so ganz weiß, wie ich das Problem beschreiben soll  ;D;D


vielen Dank schonmal
der_webi


Antworten zu mysql ORDER mit bestimmten Datensatz anfangen:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Man könnte das in 2 Abfragen machen:

1. Abfrage:
Nur den User abrufen mit der session ID, also:

SELECT * FROM user ORDER BY id WHERE id=$Session["user_id"] LIMIT 1;

Und dann nur eine Ausgabe per Echo, wegen Limit 1.

2. Abfrage als Schleife mit if Abfrage, damit der User nicht doppelt vorkommt:

$sql='SELECT * FROM user ORDER BY id';

$result = mysql_query($sql) OR die(mysql_error());
      while($row = mysql_fetch_assoc($result)) {
if ($row['id'] != $Session["user_id"]) {
echo $row['user_name'];
} else {
// Do nothing
}

}

Hab den Code aber nicht überprüft, obs funktioniert.  ;)
« Letzte Änderung: 13.08.08, 01:50:31 von Tach »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Tach Tach
Ja das meinte ich ja in meinem Beitrag schon. Habs zwar auch noch nicht probiert, aber das sollte funktionieren.

Nur mein Problem ist, dass ich etwas mehr machen muss als ein "echo"  ;D;D . Ich muss nämlich in dem Terminplaner auch noch die Termine den Usern zuordnen etc.


Aber ich glaube ich mach das dann einfach über arrays, wenn da niemandem mehr was zu einfällt.

Irgendwie so:

$sql = mysql_query(SELECT * FROM user  WHERE id=$Session["user_id"] LIMIT 1);
$row = mysql_fetch_array($sql)

$user_array[0] = (Daten);

$sql = mysql_query(SELECT * FROM user  WHERE id!=$Session["user_id"] );
while($row = mysql_fetch_assoc($sql)) {

$x=1;
$user_array[$x] = (Daten);

$x++;

}

Sollte so gehen, dann hab ich alles in einem array. Muss ich nur meinen Code etwas umstellen. Oder ich mach das mit einem UNION in Mysql.

Das müsste eigentlich auch gehen, fällt mir gerade so ein ;D;D;D;D

Da bin ich ja noch überhaupt nicht draufgekommen. 8)

Naja hätte ja sein können, dass es in MySQL eine einfache Funktion gibt, wie in meinem ersten Eintrag gesucht.

Aber dann mache ich das halt über einen kleinen Umweg.


gruß
der_webi

 
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Achso, sry das hab ich überlesen.  :-[


« Hilfe mit String?! *confused*Bilder per klick vergrößern/hervorrufen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
AGP Schnittstelle
Die AGP (Accelerated Graphics Port) - Schnittstelle wurde in den 1990er Jahren eingeführt und war speziell für Grafikkarten in PCs konzipiert. Sie bot eine dire...

PCI Schnittstelle
PCI steht für "Peripheral Component Interconnect": eine Kartenschnittstelle auf dem Computer Mainboard, die in den 1990er Jahren eingeführt wurde und die ä...

Serielle Schnittstelle
Die serielle Schnittstelle ist eine genormte Schnittstellen zur seriellen Datenübertragung vom und zum Computer. Serielle Schnittstellen wie RS-232 und RS-422 spielt...