Bevorzugte Einträge auslesen
Bevorzugte Einträge auslesen
am 14.09.2006 08:51:21 von JonSchmidt
Guten Morgen,
stehe etwas auf dem Schlauch. Folgendes Problem: auf verschiedenen
Webs, die alle auf die selbe Tabelle zugreifen, können User bestimmte
Einträge machen. Jedes Web kann eine Kennung mitgeben, die beim
Eintragen in der DB gespeichert wird.
Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträge
mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
Knoten im Hirn, vielleicht kann grade jemand helfen?
Danke und Grüße,
Jon
Re: Bevorzugte Einträge auslesen
am 14.09.2006 09:06:30 von Kai Ruhnau
JonSchmidt wrote:
> stehe etwas auf dem Schlauch. Folgendes Problem: auf verschiedenen
> Webs, die alle auf die selbe Tabelle zugreifen, können User bestimmte
> Einträge machen. Jedes Web kann eine Kennung mitgeben, die beim
> Eintragen in der DB gespeichert wird.
Was ist ein Web? Jede mir bekannte Bedeutung beißt sich mit diesem Absatz.
> Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträge
> mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
> ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
> Knoten im Hirn, vielleicht kann grade jemand helfen?
Ich schau mal, ob meine Glaskugel gerade recht hat. Ansonsten musst du
genauer werden.
LEFT JOIN mit ORDER BY kennung.id IS NULL?
Grüße
Kai
Re: Bevorzugte Einträge auslesen
am 14.09.2006 09:20:08 von Christian Kirsch
Am 14.09.2006 09:06 schrieb Kai Ruhnau:
> JonSchmidt wrote:
>> stehe etwas auf dem Schlauch. Folgendes Problem: auf verschiedenen
>> Webs, die alle auf die selbe Tabelle zugreifen, können User bestimmte
>> Einträge machen. Jedes Web kann eine Kennung mitgeben, die beim
>> Eintragen in der DB gespeichert wird.
>
> Was ist ein Web? Jede mir bekannte Bedeutung beißt sich mit diesem Absatz.
Vielleicht meint er "Browser"?
>
>> Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträge
>> mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
Sowas gibt es nicht. HTTP ist ein verbindungsloses Protokoll - Du
weißt also nicht, wo "ein User gerade surft". Du weißt nur, wo er bis
gerade eben war.
>> ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
>> Knoten im Hirn, vielleicht kann grade jemand helfen?
>
Wie Kai schon angedeutet hat, ist Deine (Jons) Beschreibung reichlich
unklar (und ich erkenne bislang auch keinen Bezug zu MySQL). Wie wäre
es, wenn Du die Ausgabe von CREATE TABLE postest, ein paar
Beispieldaten, das daraus gewünschte Ergebnis, und vielleicht noch
das, was Du versucht hast, ggfs. mit Fehlermeldung?
Re: Bevorzugte Einträge auslesen
am 14.09.2006 09:33:06 von JonSchmidt
Kai Ruhnau wrote:
> JonSchmidt wrote:
> > stehe etwas auf dem Schlauch. Folgendes Problem: auf verschiedenen
> > Webs, die alle auf die selbe Tabelle zugreifen, können User bestimmte
> > Einträge machen. Jedes Web kann eine Kennung mitgeben, die beim
> > Eintragen in der DB gespeichert wird.
>
> Was ist ein Web? Jede mir bekannte Bedeutung beißt sich mit diesem Absa=
tz.
Ein Web ist ein Internetportal / Internetsite / Homepage...
> > Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträ=
ge
> > mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
> > ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
> > Knoten im Hirn, vielleicht kann grade jemand helfen?
>
> Ich schau mal, ob meine Glaskugel gerade recht hat. Ansonsten musst du
> genauer werden.
>
> LEFT JOIN mit ORDER BY kennung.id IS NULL?
>
> Grüße
> Kai
Die Abfrage nach IS NULL funktioniert leider nicht, weil in allen
diesen Kennungsfeldern irgendein Wert steht.
Gruß Jon
Re: Bevorzugte Einträge auslesen
am 14.09.2006 10:14:58 von Kai Ruhnau
JonSchmidt wrote:
^^^^^^^^^^
Mach da mal ein Leerzeichen rein. Es gibt viele Teilnehmer hier die dich
wegen eines fehlenden Realnamens filtern.
> Kai Ruhnau wrote:
>> JonSchmidt wrote:
>>> stehe etwas auf dem Schlauch. Folgendes Problem: auf verschiedenen
>>> Webs, die alle auf die selbe Tabelle zugreifen, können User bestimmte
>>> Einträge machen. Jedes Web kann eine Kennung mitgeben, die beim
>>> Eintragen in der DB gespeichert wird.
>> Was ist ein Web? Jede mir bekannte Bedeutung beißt sich mit diesem Absatz.
>
> Ein Web ist ein Internetportal / Internetsite / Homepage...
Warum schreibst du das dann nicht?
>>> Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträge
>>> mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
>>> ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
>>> Knoten im Hirn, vielleicht kann grade jemand helfen?
>> Ich schau mal, ob meine Glaskugel gerade recht hat. Ansonsten musst du
>> genauer werden.
>>
>> LEFT JOIN mit ORDER BY kennung.id IS NULL?
>>
>> Grüße
>> Kai
>
> Die Abfrage nach IS NULL funktioniert leider nicht, weil in allen
> diesen Kennungsfeldern irgendein Wert steht.
Nein, so geht das nicht weiter. Wenn du Hilfe möchtest, dann sorge
dafür, dass man dir helfen kann. Ich habe keine Lust weiter in einer
trüben Suppe zu stochern, um vielleicht einen Hinweis für dich
herauszufischen.
Ich (ich denke sogar "wir") brauche:
CREATE TABLE der beteiligten Tabellen.
Eine kurze Beschreibung und die Zusammenhänge zwischen den relevanten
Feldern, wenn sie sich nicht automatisch aus dem Namen ergeben.
Dein bisherigen Versuche, dein Zeil zu erreichen, inklusive der
Fehlermeldungen bzw. der Abweichungen vom gewünschten Ergebnis.
Grüße
Kai
Re: Bevorzugte Einträgeauslesen
am 14.09.2006 10:45:21 von Sven Paulus
JonSchmidt wrote:
> Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträg=
e
> mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
> ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
> Knoten im Hirn, vielleicht kann grade jemand helfen?
.... ORDER BY (web_identifier !=3D "mein_web") ?
Re: Bevorzugte Einträge auslesen
am 14.09.2006 11:27:52 von JonSchmidt
Sven Paulus wrote:
> JonSchmidt wrote:
> > Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträ=
ge
> > mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
> > ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
> > Knoten im Hirn, vielleicht kann grade jemand helfen?
>
> ... ORDER BY (web_identifier !=3D "mein_web") ?
Ok, ich dachte, die grundsätzlichen Infos reichen für eine
Beschreibung des Problems. Nun habe ich weiter recherchiert und
folgenden Hinweis bekommen:
http://www.sqlteam.com/item.asp?ItemID=3D2209
Ich denke nicht, dass die Struktur der Tabelle irgendwie weiter
hilft.Wichtig ist doch nur, dass in der Tabelle ein Identifier steht,
der mit dem aktuellen Portal abgeglichen werden kann. Und dann möchte
ich, dass alle Einträge aller Portale ausgegeben werden, sortiert
nach: 1. Einträge des aktuellen Portals, 2. danach alle übrigen
Einträge der anderen Portale.
Meine Bisherigen ORDER BY Versuche haben leider immer nur die
Ergebnisse eines Portals ausgegeben. Ich checke jetzt mal den obigen
Link.
Danke für Eure Mühen! Nichts für ungut,
Gruß Jon
Re: Bevorzugte Einträgeauslesen
am 14.09.2006 12:07:26 von h.schroeck
Hi,
JonSchmidt schrieb am Donnerstag, 14. September 2006 11:27:
> Sven Paulus wrote:
>> JonSchmidt wrote:
>> > Nun möchte ich, dass beim Auslesen der Einträge diejenigen Einträge
>> > mit der Kennung des Webs, auf dem ein User grade surft, bevorzugt, also
>> > ganz oben, ausgelesen und gezeigt werden. Aber irgendwie habe ich
>> > Knoten im Hirn, vielleicht kann grade jemand helfen?
>>
>> ... ORDER BY (web_identifier != "mein_web") ?
>
> Ok, ich dachte, die grundsätzlichen Infos reichen für eine
> Beschreibung des Problems.
wohl nicht, da hier alle nur rumraten...
> Ich denke nicht, dass die Struktur der Tabelle irgendwie weiter
> hilft.Wichtig ist doch nur, dass in der Tabelle ein Identifier steht,
> der mit dem aktuellen Portal abgeglichen werden kann. Und dann möchte
> ich, dass alle Einträge aller Portale ausgegeben werden, sortiert
> nach: 1. Einträge des aktuellen Portals, 2. danach alle übrigen
> Einträge der anderen Portale.
das ist etwas anschaulicher...
entweder suchst Du UNION oder Du willst Dir für jedes Deiner
Portale eine Sortiertabelle anlegen, die Du dann joinst und nach
der Sortierspalte sortierst
hth
Holger
Re: Bevorzugte Einträgeauslesen
am 14.09.2006 13:15:24 von Sven Paulus
JonSchmidt wrote:
>> ... ORDER BY (web_identifier !=3D "mein_web") ?
> Ich denke nicht, dass die Struktur der Tabelle irgendwie weiter
> hilft.Wichtig ist doch nur, dass in der Tabelle ein Identifier steht,
> der mit dem aktuellen Portal abgeglichen werden kann.
Diesen Identifier habe ich oben mit "web_identifier" (ganz gemaess
Deiner Nomenklatur) bezeichnet.
> Und dann möchte ich, dass alle Einträge aller Portale ausgegeben
> werden, sortiert nach: 1. Einträge des aktuellen Portals, 2. danach
> alle übrigen Einträge der anderen Portale.
Wenn Dein aktuelles Portal "mein_web" heisst, evaluiert obiges fuer
alle Eintraege, bei denen web_identifier =3D "mein_web" ist zu 0, bei
denen, bei denen es ungleich ist, zu 1. 0 ist kleiner 1, also steht
es vorher. Das ist es doch, was Du willst?
> Meine Bisherigen ORDER BY Versuche haben leider immer nur die
> Ergebnisse eines Portals ausgegeben.=20
Hu? ORDER BY schraenkt nie Ergebnismengen ein?!