Seite 2 von 3

Verfasst: 15.11.2004 19:28
von cyber3000
mir würde letzte Eintrag reichen!

mit "last insert id Limit -1" (oder so ähnlich) hatte ich es schon einmal versucht.
Leider haue ich mir immer einen synthax Fehler rein.
Vor allem wahrscheinlich weil es an der falschen Stelle im Code ist.
:(

Verfasst: 15.11.2004 19:42
von Blutgerinsel
Ahja.....

Code: Alles auswählen

SELECT
  *
FROM 
  gewichte
ORDER BY
  timestamp DESC
LIMIT 1
Was ist dagegen einzuwenden?

Verfasst: 15.11.2004 19:57
von cyber3000
Ahja.....
ja klar, hau ruhig drauf. :(

Code: Alles auswählen

$sql = "SELECT u.username, u.gewicht_s, u.gewicht_z, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, u.user_avatar, u.user_avatar_type, u.user_allowavatar, g.gewicht, g.gewicht_k 
   FROM ". USERS_TABLE ." u, phpbb_gewicht g 
   WHERE u.user_id <> " . ANONYMOUS . " 
   AND u.user_id = g.userid 
   ORDER BY $order_by";
so sieht es ja bisher aus. Wie bekomme ich denn den "timestamp DESC" da rein?
Oder muss ich es noch wo anders unterbringen?

Verfasst: 15.11.2004 22:36
von Blutgerinsel
cyber3000 hat geschrieben:
Ahja.....
ja klar, hau ruhig drauf. :(

Code: Alles auswählen

$sql = "SELECT u.username, u.gewicht_s, u.gewicht_z, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, u.user_avatar, u.user_avatar_type, u.user_allowavatar, g.gewicht, g.gewicht_k 
   FROM ". USERS_TABLE ." u, phpbb_gewicht g 
   WHERE u.user_id <> " . ANONYMOUS . " 
   AND u.user_id = g.userid 
   ORDER BY $order_by";
so sieht es ja bisher aus. Wie bekomme ich denn den "timestamp DESC" da rein?
Oder muss ich es noch wo anders unterbringen?
Mal ganz langsam.....

Wir brauchen eine Zeitspalte z.B. timestamp wenn wir diese absteigend sortieren müsste wir in der ersten Zeile den aktuellen Datensatz haben.
Und wenn wir nur den ersten haben wollen müssen wir die Ergebnismenge mit Limit einschränken.......

Dein jetziges Statement liefert dir sämtliche User und Gewichte.....

In deiner Gewichte Table hast du schon mal eine Timestamp spalte nach dieser müsstest du eigentlich nur sortieren....

Die Frage ist wie sieht das SQL Statment mit $order_by aus bzw. nach was wird sortiert....
Du kannst hier problemlos , getrennt mehrere Felder angeben.....
Allerdings wird in $order_by vermutlich der Spaltename + ASC/DESC drinstehen.....

Gib einfach mal:

Code: Alles auswählen

echo $sql;

Verfasst: 15.11.2004 22:54
von cyber3000
Hallo,
Ich frage mich allerdings was du im eigentlichen Sinne tun willst.....
Möchtest du eine weitere Sortiermöglichkeit in der Mitgliederliste nach z.B. letzter Eintrag.....Anscheind ja wie die Sortierung nach letztem Gewicht aussieht auf deiner Page
ja dann versuche ich es mal ganz langsam:

Wie du im Moment siehst bin ich ja in der Liste 3 x vertreten.
Und zwar sind das die drei letzten Daten die ich eingegeben habe.
Wer sich zweimal eingetragen hat ist auch nur zweimal vertreten.

Nun soll aber jeder Name nur 1x auftauchen, zugeordnet werden soll bei diesem aber immer der Letzte Eintrag des Gewichtes.
(Oder eben nach Kalenderwoche).
Mir würde aber der Letzte Eintrag schon reichen.


E-Mail, webseiten, Wohnort fliegt hinter noch raus.



das mit
timestamp DESC
LIMIT 1
hat mir allerdings nur den letzten User und einen Eintrag ausgeworfen.

DANKE, für deine Zeit!

Verfasst: 15.11.2004 23:34
von Blutgerinsel
Mit anderen Worten du willst nur nach dem Usernamen gruppieren und sein Maximalgewicht anzeigen, ist es das?

Code: Alles auswählen

$sql = "SELECT u.username, max(g.gewicht_s+g.gewicht_z) as Gewicht, u.user_id
   FROM ". USERS_TABLE ." u, phpbb_gewicht g 
   GROUP BY u.user_id
   WHERE u.user_id <> " . ANONYMOUS . " 
   AND u.user_id = g.userid 
   ORDER BY Gewicht DESC"

Verfasst: 15.11.2004 23:56
von cyber3000
nicht ganz.
folgende Daten kommen aus der Tabelle php_users:

1. Name
2. Startgewicht
3. Zielgewicht
4. Größe

weitere Daten aus der php_gewicht:

1. Ist Gewicht
2. die nach Kommastelle vom Istgewicht

Verfasst: 16.11.2004 00:17
von Blutgerinsel
cyber3000 hat geschrieben:nicht ganz.
folgende Daten kommen aus der Tabelle php_users:

1. Name
2. Startgewicht
3. Zielgewicht
4. Größe

weitere Daten aus der php_gewicht:

1. Ist Gewicht
2. die nach Kommastelle vom Istgewicht
Solange die Datensäte eindeutig sind wird GROUP BY funktionieren und nicht entsprechende Error um die Ohren hauen....

Ich denke das bekommst du jetzt alleine hin oder?

Verfasst: 16.11.2004 00:29
von cyber3000
ich sage mal oder?

wirst bestimmt noch mal von mir hören. :D

thx

Verfasst: 17.11.2004 15:50
von cyber3000
versprochen ist versprochen.
Da bin ich wieder. :cry:

Eigentlich hatte ich gedacht ich hätte es geschafft aber denkste. Mist!
Jetzt fummel ich schon wieder eine Ganze Zeit aber mir fällt nichts mehr dazu ein.
Also so schauts nun aus:

Code: Alles auswählen

$sql = "SELECT u.username, max(u.gewicht_s+u.gewicht_s_k/10) as gewicht_s, max(g.gewicht+g.gewicht_k/10-u.gewicht_z+u.gewicht_z_k/10) as verbleiben , max(u.gewicht_z+u.gewicht_z_k/10) as zielgewicht, u.groesse, max((u.gewicht_s+u.gewicht_s_k/10)-(g.gewicht+g.gewicht_k/10)) as abnahmegewicht , u.gewicht_z, u.gewicht_z_k, u.user_id, u.user_viewemail, u.user_regdate, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, u.user_avatar, u.user_avatar_type, u.user_allowavatar, max(g.gewicht+g.gewicht_k/10) as gewicht, max((g.gewicht+g.gewicht_k/10)/(u.groesse*u.groesse/10000)) as bmi, g.timestamp
   FROM ". USERS_TABLE ." u, phpbb_gewicht g 
   WHERE u.user_id <> " . ANONYMOUS . " 
   AND u.user_id = g.userid 
   GROUP BY user_id 
   ORDER BY  $order_by";

Alles lässt sich schön sortieren, wie angedacht.
Leider hat das Ganze einen riesen Schönheitsfehler.
Bei dem "Gewicht" wird nicht das letzte genommen, was der User eingetragen hat sondern meist das Erste.
Folglich stimmt auch die Ganze Berechnung nicht.

Ich habe es schon mit "order by gewicht desc" versucht aber auch dann funzt es nicht. :(

BITTE, wer schmeißt mir mal was zur Erleuchtung rüber?

hier seht ihr das Problem:
http://diaet.abnehmen-forum.com/memberlist1.php