Seite 1 von 1
Problem mit sql-update
Verfasst: 21.07.2003 22:57
von DerDumme
tach leute, ich präsentier euch heute wieder mal meine grenzenlose dummheit! ich hab die memberlist für ein browsergame umprogrammiert und will nun mit einem klick eine kirche bauen ... da sollen 3 db-einträge geändert werden ... da hab ich diesen code geschrieben:
Code: Alles auswählen
$bauen_kirche ($sql = "SELECT username, user_id, user_posts, user_hq, user_kaserne, user_block, user_church, user_cash
FROM " . USERS_TABLE . "
UPDATE user_id = " . $userdata['user_id'] . "
SET user_cash = user_cash-500
SET user_church = user_church+1
SET user_posts = user_posts+50
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}
)
$template->assign_block_vars('memberrow', array(
'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ),
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'USERNAME' => $username,
'FROM' => $from,
'JOINED' => $joined,
'POSTS' => $posts,
'HQ' => $hq,
'KASERNE' => $kaserne,
'BLOCK' => $block,
'CHURCH' => $church,
'CASH' => $cash,
'BAUEN_KIRCHE' => $bauen_kirche
);
DA steht halt noch so viel anderes zeug drin weils halt die memberlist ist ... also hab ich nen button mit der variable {BAUEN_KIRCHE} gemacht ... das sollte ja dann die updates da oben ausführen ... leider bekomm ich immer nur
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\phpdev\www\public\buildings.php on line 197
Kann mir da vielleicht jemand helfen, wäre sehr nett !!!!!
Verfasst: 21.07.2003 23:25
von PhilippK
Sorry, aber da scheint erst mal ein
Crash-Kurs MySQL notwendig. Aus dem Code lässt sich nicht erkennen, was du willst. Du würfelst eine SELECT-Abfrage mit 'nem UPDATE zusammen, dass nicht mal mit 'nem WHERE eingegrenzt wird. Von den fehlenden Anführungszeichen mal ganz zu schweigen...
Du solltest schon etwas konkretisieren, was du haben willst...
Gruß, Philipp
BTW: ein Beitrag reicht völlig

Verfasst: 22.07.2003 00:00
von DümmesKerl
Ich will hallt, das man mit einem klick paar daten von dem user, der das gerade ausführt, verändert!
Stimmt das jetzt eher !?
Code: Alles auswählen
$bauen_kirche {
$sql = UPDATE `phpbb_users` SET `user_posts` = `user_posts`+1,
`user_cash` = `user_cash`-500,
`user_church` = `user_church`+1 WHERE `user_id` = " . $userdata['user_id'] . ";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}
}
ich hab das sql kram aus phpmyadmin abgeschrieben, aber es sagt, das ein fehler in der 2. zeile ist (also 2.zeile von dem code da oben)
Helft der dummen kerl

Verfasst: 22.07.2003 00:14
von PhilippK
Ich glaube - wenn ich das richtig verstanden habe - dass das nicht so ganz einfach ist, wie du das dir vorstellst. Du brauchst erst eine Routine, die den Klick (wohin auch immer) abfängt...
Gruß, Philipp
Verfasst: 22.07.2003 00:19
von burp
ja ich hab den klick in nem template und dann was, das das abfängt 'BAUEN_KIRCHE' => $bauen_kirche und dann wollt ich halt das $bauen_kirche in ne funktion umwandeln ...
das kommt jetzt alles aus der umgewandelten memberlist.php!
Ist aber nur der ausschnitt, wo es drin vorkeommt!
Code: Alles auswählen
if ( $row = $db->sql_fetchrow($result) )
{
$i = 0;
do
{
$username = $row['username'];
$user_id = $row['user_id'];
$from = ( !empty($row['user_from']) ) ? $row['user_from'] : ' ';
$joined = create_date($lang['DATE_FORMAT'], $row['user_regdate'], $board_config['board_timezone']);
$posts = ( $row['user_posts'] ) ? $row['user_posts'] : 0;
$hq = ( $row['user_hq'] ) ? $row['user_hq'] : 0;
$kaserne = ( $row['user_kaserne'] ) ? $row['user_kaserne'] : 0;
$block = ( $row['user_block'] ) ? $row['user_block'] : 0;
$church = ( $row['user_church'] ) ? $row['user_church'] : 0;
$cash = ( $row['user_cash'] ) ? $row['user_cash'] : 0;
$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id");
$profile_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_profile'] . '" alt="' . $lang['Read_profile'] . '" title="' . $lang['Read_profile'] . '" border="0" /></a>';
$profile = '<a href="' . $temp_url . '">' . $lang['Read_profile'] . '</a>';
$temp_url = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$user_id");
$pm_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
$pm = '<a href="' . $temp_url . '">' . $lang['Send_private_message'] . '</a>';
$www_img = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
$www = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
if ( !empty($row['user_icq']) )
{
$icq_status_img = '<a href="http://wwp.icq.com/' . $row['user_icq'] . '#pager"><img src="http://web.icq.com/whitepages/online?icq=' . $row['user_icq'] . '&img=5" width="18" height="18" border="0" /></a>';
$icq_img = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>';
$icq = '<a href="http://wwp.icq.com/scripts/search.dll?to=' . $row['user_icq'] . '">' . $lang['ICQ'] . '</a>';
}
else
{
$icq_status_img = '';
$icq_img = '';
$icq = '';
}
$aim_img = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a>' : '';
$aim = ( $row['user_aim'] ) ? '<a href="aim:goim?screenname=' . $row['user_aim'] . '&message=Hello+Are+you+there?">' . $lang['AIM'] . '</a>' : '';
$temp_url = append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id");
$msn_img = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['MSNM'] . '" title="' . $lang['MSNM'] . '" border="0" /></a>' : '';
$msn = ( $row['user_msnm'] ) ? '<a href="' . $temp_url . '">' . $lang['MSNM'] . '</a>' : '';
$yim_img = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a>' : '';
$yim = ( $row['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $row['user_yim'] . '&.src=pg">' . $lang['YIM'] . '</a>' : '';
$temp_url = append_sid("search.$phpEx?search_author=" . urlencode($username) . "&showresults=posts");
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . $lang['Search_user_posts'] . '" title="' . $lang['Search_user_posts'] . '" border="0" /></a>';
$search = '<a href="' . $temp_url . '">' . $lang['Search_user_posts'] . '</a>';
$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
$bauen_kirche {
$sql = 'UPDATE `phpbb_users` SET `user_posts` = `user_posts`+50,';
$sql .= ' `user_cash` = `user_cash`-500,';
$sql .= ' `user_church` = `user_church`+1 WHERE `user_id` = " . $userdata['user_id'] . " LIMIT 1 ;';
$sql .= '';
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not query users', '', __LINE__, __FILE__, $sql);
}
}
$template->assign_block_vars('memberrow', array(
'ROW_NUMBER' => $i + ( $HTTP_GET_VARS['start'] + 1 ),
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'USERNAME' => $username,
'FROM' => $from,
'JOINED' => $joined,
'POSTS' => $posts,
'AVATAR_IMG' => $poster_avatar,
'PROFILE_IMG' => $profile_img,
'PROFILE' => $profile,
'SEARCH_IMG' => $search_img,
'SEARCH' => $search,
'PM_IMG' => $pm_img,
'PM' => $pm,
'EMAIL_IMG' => $email_img,
'EMAIL' => $email,
'WWW_IMG' => $www_img,
'WWW' => $www,
'ICQ_STATUS_IMG' => $icq_status_img,
'ICQ_IMG' => $icq_img,
'ICQ' => $icq,
'AIM_IMG' => $aim_img,
'AIM' => $aim,
'MSN_IMG' => $msn_img,
'MSN' => $msn,
'YIM_IMG' => $yim_img,
'YIM' => $yim,
'PERCENTAGE' => $percentage,
'HQ' => $hq,
'KASERNE' => $kaserne,
'BLOCK' => $block,
'CHURCH' => $church,
'CASH' => $cash,
'BAUEN_KIRCHE' => $bauen_kirche
'U_VIEWPROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"))
);
$i++;
}
while ( $row = $db->sql_fetchrow($result) );
}
Hab nochmal den sql-code verändert, aber das funzt auch net!
Verfasst: 22.07.2003 11:23
von Acid
Den UPDATE-Bereich würde ich ausserhalb des SELECT-Bereiches platzieren.
So.. du hast ja in der *.tpl einen Button. Dieser Button hat einen Namen (z.B. name="irgendwas").
Nun kannst du in der *.php die Aktion beim Betätigen des Buttons (UPDATE) mit folgendem deklarieren..
Code: Alles auswählen
if( isset($HTTP_POST_VARS[irgendwas]) )
{
hier den ganze UPDATE code platzieren
}
Verfasst: 11.08.2003 02:24
von Henss
ach verdammz, ich werds nie kapieren ............
also in der template hab ich:
<form action="kaufen_kirche" name="kaufen_kirche"><td class="{memberrow.ROW_CLASS}" align="center" valign="middle"><span class="gen"></span><input type="submit" name="kaufen_kirche" value="Kaufen" class="button"></td></form>
und in der .php :
if( isset($HTTP_POST_VARS[kaufen_kirche]) )
{
$sql = 'UPDATE `phpbb_users` SET `user_posts` = `user_posts`+250, `user_cash` = `user_cash`-2500; `user_church` = `user_church`+1 WHERE `user_id` = " . $userdata['user_id'] . ";
}
und ich hab irgendwo in der zeile mit den ganzen änderungen fehler ... kann mir bitte jemand helfen, bevor ich mich auch verzweiflung umbringe

Verfasst: 13.08.2003 21:12
von Der Dumme
Kann niemand helfen?
Bitte ich bräuchte das wirklich! Bin aber recht dumm un weiss net wie man das macht!
Könnte mir niemand mal nen quelltext geben !? das ist das einzige was ich brauch!