Abfrage von zwei Tabellen und letzter Eintrag

cyber3000

Grünschnabel
Hi @all,

ich habe folgendes Problem:
Datenbank MySQL 4.0.20

Nun habe ich meine Mitgliederliste umfunktioniert um andere Daten aus meiner Datenbank aufzulisten.
Klappt auch so weit und gut bis auf das ich von zwei Werten nur den letzten Eintrag jedes Users benötige.

Beispiel:

Es soll das letzte eingetragene Gewicht ausgegeben werden.
Gespeichert wird das Ganze in der DB wie folgt:

`phpbb_gewicht` (`userid`, `gewicht`, `gewicht_k`, `timestamp`) VALUES (2, 79, 7, 1099069169);
Es wird jede Woche erneut eingegeben .Zur Veranschaulichung hier mal der Link:http://diaet.abnehmen-forum.com/memberlist1.phpDer code sieht wie folgt aus:
Code:
$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 , min(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, min(g.gewicht+g.gewicht_k/10) as gewicht, min((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";



wobei
Code:
min(g.gewicht+g.gewicht_k/10) as gewicht
lieber "letzter" Eintrag anstatt "Min" heißen sollte.

Aber sowas gibt es wohl nicht,oder?



weiter unten sieht es so aus:
Code:
$Gewicht_Ziel = ( !empty($row['gewicht']) ) ? $row['gewicht'] : '&nbsp;';

vielleicht kann man dort was ändern?

Bin leider ein absoluter Neuling auf dem Gebiet.
Sorry für blöde Fragen.

Danke!

Thorsten
 
Hi,

kannst du mal deine Tabellen in der DB zeigen? Vielleicht könnte man ja bei der Struktur was sinnvoll verändern um eine bessere Lösung zu erreichen.

Gruß Ukyo
 
@Oliver Gringel,ukyo184

Hallo,

erst einmal Danke für Eure schnellen Antworten.
Ich habe das Ganze jetzt erst einmal nach "users" zum testen verschoben.
Der Code sieht wie folgt aus:

Code:
$sql = "SELECT u.username,u.userid, u.groesse, u.gewicht_z,u.gewicht,u.gewicht_k, 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, u.timestamp

FROM " . USERS_TABLE . " u 

WHERE user_id <> " . ANONYMOUS . "

Group by user_id

ORDER BY $order_by";


Die Namen werden jetzt zwar alle aufgeführt, allerdings hat jeder das gleiche Gewicht.

Die Tabelle sieht so aus:

Code:
`phpbb_users` (`user_id`, `user_active`, `username`, `user_password`, `user_session_time`, `user_session_page`, `user_lastvisit`, `user_regdate`, `user_level`, `user_posts`, `user_timezone`, `user_style`, `user_lang`, `user_dateformat`, `user_new_privmsg`, `user_unread_privmsg`, `user_last_privmsg`, `user_emailtime`, `user_viewemail`, `user_attachsig`, `user_allowhtml`, `user_allowbbcode`, `user_allowsmile`, `user_allowavatar`, `user_allow_pm`, `user_allow_viewonline`, `user_notify`, `user_notify_pm`, `user_popup_pm`, `user_rank`, `user_avatar`, `user_avatar_type`, `user_email`, `user_icq`, `user_website`, `user_from`, `user_sig`, `user_sig_bbcode_uid`, `user_aim`, `user_yim`, `user_msnm`, `user_occ`, `user_interests`, `user_actkey`, `user_newpasswd`, `gewicht_s`, `gewicht_z`, `gewicht_s_k`, `gewicht_z_k`, `groesse`, `userid`, `gewicht`, `gewicht_k`, `timestamp`) VALUES (0, 1, '', '', 0, 0, 0, 0, 0, 0, '0.00', NULL, NULL, 'd M Y H:i', 0, 0, 0, NULL, NULL, NULL, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, 3, 80, 0, 1100871092);


Das neue Beispiel findet ihr hier:

http://diaet.abnehmen-forum.com/rezepte/memberlist1.php


Danke!

Thorsten
 

Neue Beiträge

Zurück