MyBB.de Forum
Liste - Alter Ausgabe - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Liste - Alter Ausgabe (/thread-37986.html)



Liste - Alter Ausgabe - Lila Raven - 03.10.2021

Link zu deinem Forum: Auf Anfrage via PM
Forenversion: aktuelle
PHP-Version: 7
MySQL-Version:
Selbsteinschätzung zum Kenntnisstand: Fortgeschritten

Problem Beschreibung:
Hallo ihr lieben ^^

vielleicht kann mir ja einer von euch Helfen xD
Es geht darum das ich gerne eine Liste erstellen möchte in dem das Alter der Charas ausgespuckt wird. Da es von 0 - 2500 geht dachte ich mir mach ich das mit einer einfachen Abfrage über ein Profilfeld in dem das Alter angegeben wird:

PHP-Code:
// 25 - 35
if(preg_match("/^[25-35]/m"$row[fid12])) {
eval(
"\$zweifuenf .= \"".$templates->get("alter_bit2")."\";");


Das Problem ist jetzt das er mir den User mit dem Alter 33 nicht da reinsetzt wo es hingehört (25 Jahre - 35 Jahre) sondern zu 50 Jahre - 70 Jahre

bei der Abfrage (Alter ist 1025):
PHP-Code:
// 1001-1500
if(preg_match("/^[1001-1500]/m"$row[fid13])) {
eval(
"\$einsnullnulleins .= \"".$templates->get("alter_bit8")."\";");


schmeißt er besagten User zu:
101 Jahre - 500 Jahre, 501 Jahre - 1000 Jahre, 1001 Jahre - 1500 Jahre, 1501 Jahre - 2000 Jahre und 2001 Jahre - 2500 Jahre

Weiß einer von euch vielleicht wie ich das richtig hinbekomme? Google hat mir iwie nicht wirklich weiter geholfen und hier hab ich nichts gefunden :/

*Nervennahrung dalass*

Lg


RE: Liste - Alter Ausgabe - Schnapsnase - 03.10.2021

Warum sprichst du denn in den if-Anweisungen unterschiedliche Profilfelder an?
Das Alter sollte doch immer im gleichen Feld stehen, oder hast du dafür mehrere definiert?

PHP-Code:
$alter $row['fid12'];

if (
$alter >= 25 && $alter <= 35) {
mach dies;
}
elseif (
$alter 35 && $alter <= 500) {
mach jenes;
}
else ........ 

Dies nur ein Beispiel, da ich ja nicht weiß, was du erreichen willst und wie dein Query aussieht. Wink


RE: Liste - Alter Ausgabe - Lila Raven - 03.10.2021

OMG @Schnapsnase du bist klasse ^^ Ja vom Prinzip her will ich 2 verschiedene Profilfelder ansprechen aber damit rettest du mir den ***** xD

Vielen Dank *Kaffee und Kuchen da lässt*

EDIT: hat Super Funktioniert *_* Tausend Dank


RE: Liste - Alter Ausgabe - Lila Raven - 06.10.2021

Hallo ich nochmal Blush
Ich dachte wirklich es würde gehen aber er gibt mir IMMER nur einen einzigen User aus und nicht alle Sad

PHP-Code:
if ($alter >= && $alter <= 10) {
eval(
"\$alter1 = \"".$templates->get("alter_bit")."\";");
}
elseif (
$alter >= 11 && $alter <= 24) {
eval(
"\$alter2 = \"".$templates->get("alter_bit")."\";");


Hab ich da irgendein Fehler rein gehauen den ich nicht finde?

Wäre für jede Hilfe dankbar Shy
Lg


RE: Liste - Alter Ausgabe - Schnapsnase - 07.10.2021

An den if-Anweisungen ist nichts auszusetzen.
Da wir aber den Rest deines Codes immer noch nicht kennen, kann man auch nicht weiter helfen.


RE: Liste - Alter Ausgabe - Lila Raven - 07.10.2021

Sorry Blush hier der rest ^^

PHP-Code:
$sql $db->query("SELECT * FROM mybb_users u LEFT JOIN mybb_userfields uf ON(u.uid=uf.ufid) ORDER BY username ASC");
while(
$row $db->fetch_array($sql)) {
$row[username] = build_profile_link(format_name($row['username'], $row['usergroup'], $row['displaygroup']), $row['uid']);

$alter $row['fid12'];
if (
$alter >= && $alter <= 10) {
eval(
"\$alter1 = \"".$templates->get("alter_bit")."\";");
}
elseif (
$alter >= 11 && $alter <= 24) {
eval(
"\$alter2 = \"".$templates->get("alter_bit")."\";");
}
elseif (
$alter >= 25 && $alter <= 35) {
eval(
"\$alter3 = \"".$templates->get("alter_bit")."\";");
}
elseif (
$alter >= 36 && $alter <= 49) {
eval(
"\$alter4 = \"".$templates->get("alter_bit")."\";");
}
elseif (
$alter >= 50 && $alter <= 70) {
eval(
"\$alter5 = \"".$templates->get("alter_bit")."\";");
}
elseif (
$alter >= 71 && $alter <= 100) {
eval(
"\$alter6 = \"".$templates->get("alter_bit")."\";");
}

$aalter $row['fid13'];
if (
$aalter >= 101 && $aalter <= 500) {
eval(
"\$aalter7 = \"".$templates->get("alter_bit2")."\";");
}
elseif (
$aalter >= 501 && $aalter <= 1000) {
eval(
"\$aalter8 = \"".$templates->get("alter_bit2")."\";");
}
elseif (
$aalter >= 1001 && $aalter <= 1500) {
eval(
"\$aalter9 = \"".$templates->get("alter_bit2")."\";");
}
elseif (
$aalter >= 1501 && $aalter <= 2000) {
eval(
"\$aalter10 = \"".$templates->get("alter_bit2")."\";");
}
elseif (
$aalter >= 2001 && $aalter <= 2500) {
eval(
"\$aalter11 = \"".$templates->get("alter_bit2")."\";");
}
}
    eval(
"\$page = \"".$templates->get("alter")."\";");
    
output_page($page); 



RE: Liste - Alter Ausgabe - Schnapsnase - 07.10.2021

Du fragst doch im Query den Inhalt der Profilfelder gar nicht ab, sondern nur den Inhalt der users-Tabelle. Wink


RE: Liste - Alter Ausgabe - StefanT - 07.10.2021

Werden sie doch?

Problem ist eher, dass die Variablen $aalter... bei jedem Durchlauf überschrieben werden. Wolltest du stattdessen die User anhängen? Dann wäre das "$alter1 .=" (mit Punkt am Ende) statt "$alter1 =" (ohne Punkt).


RE: Liste - Alter Ausgabe - [ExiTuS] - 07.10.2021

Mittels LEFT JOIN werden ebenfalls die Profilfelder ins Ergebnis geholt.

Das Problem liegt hier daran, dass du mit jedem Durchlauf der while-Schleife immer wieder die Variablen überschreibst, bis am Ende der Schleife der letzte User übrig bleibt.
Es wird nur der letzte User der Schleife angezeigt, richtig? Smile

Die Schleife und die Übergabe der Inhalte in die Templats muss verändert werden - indem du die Templateinhalte immer wieder anhängst, damit sie im nächsten Durchlauf nicht verloren gehen, zum Beispiel anstelle des "=" ein ".="

[ExiTuS]


RE: Liste - Alter Ausgabe - Lila Raven - 07.10.2021

Danke für die Antworten :3

@StefanT Das mit dem Punkt war es tatsächlich gewesen ^^
das so ein kleiner Punkt soooo viel ausmachen kann. Es werden jetzt alles Ausgelesen und angezeigt Shy

Vielen Lieben dank euch *Blümchen da lässt*