Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

PHP/Mysql-Problems...

uwebaier - 36
Halbprofi (offline)

Dabei seit 06.2005
124 Beiträge

Geschrieben am: 23.12.2007 um 19:01 Uhr

Also folgendes:
Ich habe eine Tabelle A und eine Tabelle B
bei einem eintrag in Tabelle A sind 2 "Verknüpfungen" zu 2 Einträgen in Tabelle B.
Das Problem ist das Ich nach etwas sortieren will was nur im ersten Eintrag von Tabelle B steht, und ich will nach Möglichkeit keine gemeinsame Sortiereigenschaft um "Platz zu sparen" ^^

Vielleicht hilft es auch dem einen oder anderen das ganze Bildlich darzustellen:
[verlinkte Grafik wurde nicht gefunden]

UT3 Sucks ^^

silver-cloud - 39
Halbprofi (offline)

Dabei seit 07.2005
312 Beiträge

Geschrieben am: 23.12.2007 um 21:31 Uhr
Zuletzt editiert am: 23.12.2007 um 21:32 Uhr

Wie wäre es mit einem konkreten Beispiel für Datensätze ^^
Ich finde es sehr schwer nachzuvollziehen was du meinst.

Du sollst nur soviel Zeit in eine Antwort verschwenden, wie der Anfragende in seinem Startpost.

oO-Chris-Oo - 32
Fortgeschrittener (offline)

Dabei seit 09.2007
34 Beiträge

Geschrieben am: 23.12.2007 um 22:21 Uhr

ich auch^^^
McPommes - 51
Experte (offline)

Dabei seit 09.2006
1422 Beiträge
Geschrieben am: 23.12.2007 um 23:10 Uhr

Ich habs versucht zu verstehen, aber ohne Erfolg.

> was nur im ersten Eintrag von Tabelle B steht
Wie definiert sich der "erste Eintrag"? Du kannst nicht davon ausgehen dass du Datensätze in der Reihenfolge zurückbekommst, in der sie eingetragen werden. Da brauchst du immer ein Sortierkriterium.

Das mit dem Beispiel wäre wirklich sinnvoll.

Um wie viele Datensätze handelt es sich denn? Platz sparen ist ok, aber man darf es bei Datenbanken nicht übertreiben.


*** diese Fusszeile verschwendet 45 Bytes ***

uwebaier - 36
Halbprofi (offline)

Dabei seit 06.2005
124 Beiträge

Geschrieben am: 24.12.2007 um 16:01 Uhr

Also gut, schon mal schön den guten Ansatz mancher Leute zu sehen ^^

Tabelle A:

Zitat:


Name: Wasweisich
Spalten: ID_Eintrag 1
ID_Eintrag 2

Tabelle B:

Zitat:


Name: Eintraege
Spalten: ID
Daten
Erstelldatum

Query:

Zitat:


SELECT
Daten as Eintrag1_Daten
Erstelldatum as Eintrag1_Erstelldatum
Daten as Eintrag2_Daten
Erstelldatum as Eintrag2_Erstelldatum
FROM
Wasweisich
WHERE
Wasweisich.ID_Eintrag1=Eintraege.ID
AND
Wasweisich.ID_Eintrag2=Eintraege.ID
//Hier das Problem
SORT BY
Wasweisich.Erstelldatum DESC


Problematik:
Schicke ich ein Query (wie oben)vertauscht SQL evtl. die Daten,
schicke ich 2 Query um jeweils die Einträge zu bekommen kann ich nicht mehr sortieren...

Erklären ist nicht gerade meine Stärke, also hoffe ich natürlich das Problem anhand dieses Beispiels dargestellt zu haben...

Und natürlich an alle Fröhliche Weihnachten xD

UT3 Sucks ^^

McPommes - 51
Experte (offline)

Dabei seit 09.2006
1422 Beiträge
Geschrieben am: 24.12.2007 um 16:34 Uhr

Hm...
Die Query ist noch nicht ausführbar, das weißt du sicher.
Du musst "wasweißich" zweimal aufführen, weil du zwei verschiedene Einträge aus dieser Tabelle in einer Zeile miteinander verknüpft haben willst.
Kannst du JOIN verwenden? Wär schöner zu lesen.

Der Tabelle "wasweißich" musst du dann bei jedem mal einen extra Namen geben, dann kannst du mit diesem Namen auch aussuchen, welches Datum zum sortieren verwendet werden soll.

Etwa so
SELECT * FROM Wasweißich W1
INNER JOIN Eintraege E ON E.id1 = W1.id
INNER JOIN Wasweißich W2 ON W2.id = E.id2
ORDER BY W1.Datum (oder halt W2.Datum)

Oder hab ich das immer noch nicht kapiert? Dann mach mal ein Beispiel mit sinnvollen Daten, wo man erst mal ohne SQL nachvollziehen kann was du haben willst.


> Und natürlich an alle Fröhliche Weihnachten xD
Das natürlich auch :-)


*** diese Fusszeile verschwendet 45 Bytes ***

uwebaier - 36
Halbprofi (offline)

Dabei seit 06.2005
124 Beiträge

Geschrieben am: 24.12.2007 um 16:43 Uhr

Ne, aber ich glaub ich muss mir mal Joins anschaun, die sind mir Neuland xD
Aber schon ma danke für den Tipp das es so was überhaupt gibt =)

UT3 Sucks ^^

uwebaier - 36
Halbprofi (offline)

Dabei seit 06.2005
124 Beiträge

Geschrieben am: 24.12.2007 um 17:02 Uhr
Zuletzt editiert am: 24.12.2007 um 17:07 Uhr

OK, Laut meiner Logik Problem gelöst...
ABER:
Ich darf jemanden bitten in diesem Query den Syntaxfehler bei COUNT(*) zu finden...

SELECT
threads.closed,
threads.pinned,
section.section,
section.name,
section.categorie,
user_first.ID as createrID,
user_first.nick as creater,
post_first.createDate,
user_last.ID as lasteditorID,
user_last.nick as lasteditor,
post_last.createDate as lastedit,
posts.COUNT(*) as postcount
FROM
threads,
section,
users as user_first,
users as user_last,
posts as post_first,
posts as post_last,
posts
WHERE
threads.section='home'
AND
section.section=threads.thread
AND
post_first.ID=threads.firstpost
AND
user_first.ID=post_first.creater
AND
post_first.ID=threads.lastpost
AND
user_last.ID=post_last.creater
AND
threads.thread=posts.section
SORT BY
post_last.createdate DESC
LIMIT
0, 15;

Den Error gibts natürlich auch...

Zitat:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) as postcount FROM threads, section, use' at line 13
Fehlercode:1064


1 Fehler gefunden =)
Heißt ORDER BY und nicht SORT BY xD

Aber der andere is immer noch da

UT3 Sucks ^^

Blizz - 38
Halbprofi (offline)

Dabei seit 08.2003
268 Beiträge
Geschrieben am: 24.12.2007 um 19:51 Uhr

Zitat von uwebaier:

OK, Laut meiner Logik Problem gelöst...
ABER:
Ich darf jemanden bitten in diesem Query den Syntaxfehler bei COUNT(*) zu finden...

SELECT
threads.closed,
threads.pinned,
section.section,
section.name,
section.categorie,
user_first.ID as createrID,
user_first.nick as creater,
post_first.createDate,
user_last.ID as lasteditorID,
user_last.nick as lasteditor,
post_last.createDate as lastedit,
posts.COUNT(*) as postcount
FROM
threads,
section,
users as user_first,
users as user_last,
posts as post_first,
posts as post_last,
posts
WHERE
threads.section='home'
AND
section.section=threads.thread
AND
post_first.ID=threads.firstpost
AND
user_first.ID=post_first.creater
AND
post_first.ID=threads.lastpost
AND
user_last.ID=post_last.creater
AND
threads.thread=posts.section
SORT BY
post_last.createdate DESC
LIMIT
0, 15;

Den Error gibts natürlich auch...

Zitat:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) as postcount FROM threads, section, use' at line 13
Fehlercode:1064


1 Fehler gefunden =)
Heißt ORDER BY und nicht SORT BY xD

Aber der andere is immer noch da


....
COUNT(post.*) as postcount
...

wobei du natürlich auch count nach ide machen ..
uwebaier - 36
Halbprofi (offline)

Dabei seit 06.2005
124 Beiträge

Geschrieben am: 24.12.2007 um 21:25 Uhr

Ich seh schon, hier bin ich an fähige Leute gekommen...

Aber gut, das solls mal fürs erste gewesen sein...

Danke an alle, Close plz

UT3 Sucks ^^

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -