Seite 1 von 5
PHPBB: Neues Feld im Profil um Datum in die DB zu schreiben
Verfasst: 07.03.2003 16:43
von Candy
Hi,
ich würde gerne eine Auswahlliste ins Profil einfügen wo die User Tag/Monat/Jahr auswählen können das dann als timestamp in der DB gespeichert wird wobei im auswahlfeld Jahr immer automatisch das aktuelle Jahr + die nächsten 20 Jahre angezeigt werden sollten.
So in etwa mein ich das (Ist nur HTML):
Beispiel
Da ich noch so gut wie keine ahnung von PHP habe wäre ich dankbar wenn mir da jemand weiterhelfen könnte?
Grüße Candy
Verfasst: 07.03.2003 17:57
von Mister_X
das aktuelle Jahr kriegst du mit der date Funktion raus:
http://www.php.net/manual/de/function.date.php
und für die 20 Jahre danach kannst du dir ja mal die Doku hier anschauen:
http://www.schattenbaum.net/php/while.php
Verfasst: 07.03.2003 19:18
von Candy
Jo soweit kann ich folgen nur wie bekomme ich das hin das, das ausgewählte in die DB als timestamp eingetragen wird?
Edit: ich habe das jetzt mal so probiert wie es auf schattenbaum.net steht mein script sieht jetzt so aus:
Code: Alles auswählen
<?php
$count = 1;
$time = date("Y");
$zahl = 20;
while( $count < $zahl )
{
echo $time,", ";
$count++;
}
?>
Jetzt wird es zwar 20 mal ausgegeben aber eben immer nur 2003 nicht 2003, 2004, 2005 etc.
Grüße Candy
Verfasst: 07.03.2003 19:46
von Seether
Was soll denn sonst ausgegeben werden?
Alles andere findest Du hier
http://www.php.net/manual/de/function.date.php
z.B.
date ("m:Y")
S.
Verfasst: 07.03.2003 19:58
von esperitox
@Seether sie will die nächsten 20 Jahreszahlen ab diesem Jahr fortlaufend ausgeben lassen so hab ichs jedenfalls verstanden
@Candy füge mal nach $count++; das ein: $time++; dann sollte es gehen
esperitox
Verfasst: 08.03.2003 01:07
von Seether
esperitox hat geschrieben:@Seether sie will die nächsten 20 Jahreszahlen ab diesem Jahr fortlaufend ausgeben lassen so hab ichs jedenfalls verstanden
Opps falsch verstanden.
Dann würde ich es so machen
for ($i=2003;$i<=2023;$i++)
echo $i;
geht schneller
S.
Verfasst: 08.03.2003 01:49
von Mister_X
um aus deinen einzelnen Daten (Tag, Monat, Jahr) einen Timestamp zu generieren schaue dir diese Funktion an:
http://www.php.net/manual/de/function.strtotime.php
Verfasst: 08.03.2003 16:22
von Candy
thx bleibt nur noch die frage wie ich das mit den Drop Down Menüs hinbekomme ?
Grüße Candy
Verfasst: 08.03.2003 18:33
von Seether
Sieht so aus:
<select name="name" size="1">
<option>2003</option>
...
<option>2023</option>
</select>
S.
Verfasst: 09.03.2003 22:28
von Candy
Hi,
ich habe es jetzt mit hilfe von Chris (siehe:
http://www.phpbb.de/viewtopic.php?p=126675#126675) hinbekommen das 3 Drop Down Menüs angezeigt werden wenn ich in diesen Drop Down Menüs etwas auswähle und absende wird es zwar in der DB gespeichert aber wenn ich zurückkehre zu den Profileinstellungen sind die Drop Down Menüs zurückgesetzt und nicht so wie es sein sollte das automatisch ausgewählt ist was ich vorher gespeichert habe

Hier mal die Anleitung von Chris (etwas von mir abgeändert):
Code: Alles auswählen
[Finde]
if ( !$error )
{
if ( $avatar_sql == '' )
[Davor einfügen]
$user_first_pc_from = $d_first_pc.$m_first_pc.$y_first_pc;
[Finde]
$email = htmlspecialchars($email);
[Füge danach ein]
$d_first_pc = ( isset($HTTP_POST_VARS['d_first_pc']) ) ? intval ($HTTP_POST_VARS['d_first_pc']) : 0;
$m_first_pc = ( isset($HTTP_POST_VARS['m_first_pc']) ) ? intval ($HTTP_POST_VARS['m_first_pc']) : 0;
$y_first_pc = ( isset($HTTP_POST_VARS['y_first_pc']) ) ? intval ($HTTP_POST_VARS['y_first_pc']) : 0;
[Finde]
$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "...
[Finde darin]
, user_allow_sig=$allow_sig
[Füge direkt davor ein]
, user_first_pc_from=$user_first_pc_from
[Finde]
$sql = "INSERT INTO " . USERS_TABLE . " (user_id, u...
[Finde darin]
, user_allow_sig
[Füge direkt davor ein]
, user_first_pc_from
[Finde darin]
,'allow_sig'
[Füge direkt davor ein]
,'$user_first_pc_from'
[Finde]
$interests = htmlspecialchars($userdata['user_interests']);
[Füge danach ein]
$user_first_pc_from = $userdata['user_first_pc_from'];
[Finde]
display_avatar_gallery...
[Finde darin]
, $allow_sig
[Füge direkt davor ein]
, $user_first_pc_from
[Finde]
$template->set_filenames(array(
'body' => 'profile_add_body.tpl')
);
[Füge danach ein]
$s_d_first_pc = '<select name="d_first_pc" size="1" class="gensmall" size="1">
<option value="0">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select> ';
$s_d_first_pc = str_replace("value=\"".$user_first_pc_from."\">", "value=\"".$user_first_pc_from."\" SELECTED>" ,$s_d_first_pc);
$s_m_first_pc = '<select name="m_first_pc" size="1" class="gensmall" size="1">
<option value="0">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select> ';
$s_m_first_pc = str_replace("value=\"".$user_first_pc_from."\">", "value=\"".$user_first_pc_from."\" SELECTED>" ,$s_m_first_pc);
$s_y_first_pc = '<select name="y_first_pc" size="1" class="gensmall" size="1">
<option value="0">-</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select> ';
$s_y_first_pc = str_replace("value=\"".$user_first_pc_from."\">", "value=\"".$user_first_pc_from."\" SELECTED>" ,$s_y_first_pc);
[Finde]
'ALLOW_SIG_NO_CHECKED' => $allow_sig_no_checked,
[Füge danach ein]
'USER_FIRST_PC_FROM' => $user_first_pc_from,
'S_D_FIRST_PC' => $s_d_first_pc,
'S_M_FIRST_PC' => $s_m_first_pc,
'S_Y_FIRST_PC' => $s_y_first_pc,
Öffne templates/___/profile_add_body.tpl
[Füge ein (wo's dir gefällt)]
<tr>
<td class="row1"><span class="gen">{L_NEUFELD}:</span</td>
<td class="row2"><span class="gensmall">{S_D_FIRST_PC} {S_M_FIRST_PC} {S_Y_FIRST_PC}</span></td>
</tr>
Hat vieleicht jemand eine idee wie ich es hinbekommen kann das,das vorher gespeicherte auch Automatisch wieder ausgewählt ist im Drop Down Menü?
Ich wäre echt dankbar für hilfe da ich so etwas dringend benötige!!
Grüße Candy