Seite 1 von 3

Datenbank Fehler -> Eintragen von Werten

Verfasst: 30.08.2004 18:34
von Demidrin
Hallo, ich hab mir ein Admin Mod gebastelt, womit ich für die einzelnen Benutzergruppen individuelle News anzeigen lassen kann...

Allerdings funktioniert im Adminmenü der Eintrag nicht. Er zeigt folgenden Fehler beim Eintragen.

Code: Alles auswählen

Could not insert data into board news table:
You have an error in your SQL syntax near 'group, news) VALUES ('*', 'Tester')' at line 1
Nur finde ich einfach den Fehler net...

Code: Alles auswählen

else
		{
			$sql = "INSERT INTO " . BOARD_NEWS_TABLE . " (group, news) 
				VALUES ('" . str_replace("\'", "''", $group) . "', '" . str_replace("\'", "''", $news) . "')";
			$message = $lang['News_added'];
		}

		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, "Could not insert data into board news table: <br>".mysql_error(), $lang['Error'], __LINE__, __FILE__, $sql);
		}
Kann mir da jemand nen Tipp geben? Danke im vorraus... :)

Mfg

Demidrin

Re: Datenbank Fehler -> Eintragen von Werten

Verfasst: 30.08.2004 19:57
von xabbuh

Code: Alles auswählen

str_replace("\'", "''", $group)
Was soll er php da machen?

Hast du dir mal $sql mit print() anzeigen lassen?

Verfasst: 30.08.2004 20:06
von Demidrin
Ich hab das von einem anderen schon vorhandenen Adminmod übernommen... Ich brauchte nur die Variablen auszutauschen... Aber irgendwie klappt das net...

Ich schau mal... @print

Mfg

D.S.

P.S.: Könnte es sein, dass es an der Datenbank/Tabelle liegt?

Verfasst: 30.08.2004 20:09
von Leuchte
Soll mit $group der Gruppenname weitergegeben werden?
Probiers statt..

Code: Alles auswählen

VALUES ('" . str_replace("\'", "''", $group) . "'
mal so

Code: Alles auswählen

VALUES ('$group'

Verfasst: 30.08.2004 20:16
von Demidrin
Hab ich schon versucht, kommt das selbe dabei raus:

Code: Alles auswählen

INSERT INTO phpbb_board_news (group, news) VALUES ('*', 'Test')
Ich hab irgendwie nicht das Gefühl, dass es daran liegt...Nur ich weiß auch net woran sonst...

Mfg

D.S.

P.S.: Der Code scheint in Ordnung zu sein... Vielleicht liegt es wirklich an der Datenbank?

Verfasst: 30.08.2004 20:26
von xabbuh
Hast du denn mal print($sql) gemacht? Was hat er dir ausgegeben?

Verfasst: 30.08.2004 20:29
von Demidrin
Kommt das selbe raus...

Mmhhh....

Woran kann es sonst liegen...

Demidrin

Verfasst: 30.08.2004 20:32
von Leuchte
Kannst du mal den kompletten Code posten bzw. als Datei verlinken?

Verfasst: 30.08.2004 20:35
von Demidrin

Code: Alles auswählen

<?php

define('IN_PHPBB', 1);

if( !empty($setmodules) )
{
	$file = basename(__FILE__);
	$module['General']['Board_News'] = "$file";
	return;
}

//
// Load default header
//
$phpbb_root_path = "./../";
require($phpbb_root_path . 'extension.inc');
require('./pagestart.' . $phpEx);

if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
{
	$mode = ($HTTP_GET_VARS['mode']) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
}
else 
{
	//
	// These could be entered via a form button
	//
	if( isset($HTTP_POST_VARS['add']) )
	{
		$mode = "add";
	}
	else if( isset($HTTP_POST_VARS['save']) )
	{
		$mode = "save";
	}
	else
	{
		$mode = "";
	}
}

if( $mode != "" )
{
	if( $mode == "edit" || $mode == "add" )
	{
		$group_id = ( isset($HTTP_GET_VARS['id']) ) ? $HTTP_GET_VARS['id'] : 0;

		$template->set_filenames(array(
			"body" => "admin/board_news_edit_body.tpl")
		);

		$s_hidden_fields = '';

		if( $mode == "edit" )
		{
			if( $group_id )
			{
				$sql = "SELECT * 
					FROM " . BOARD_NEWS_TABLE . " 
					WHERE group_id = $group_id";
				if(!$result = $db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, "Could not query board news table", "Error", __LINE__, __FILE__, $sql);
				}

				$group_info = $db->sql_fetchrow($result);
				$s_hidden_fields .= '<input type="hidden" name="id" value="' . $group_id . '" />';
			}
			else
			{
				message_die(GENERAL_MESSAGE, $lang['No_news_selected']);
			}
		}

	$sql = "SELECT group_id, group_name
		FROM " . GROUPS_TABLE . "
		WHERE group_single_user <> " . TRUE . "
		ORDER BY group_name";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql);
	}

	$select_list = '';
	if ( $row = $db->sql_fetchrow($result) )
	{
	 $select_list .= "<select name='group'><option value='*'>Alle Benutzer</option>";
		do
		{
			if ( $row['group_id'] == $group_info['group'] ) $select_list .= '<option value="' . $row['group_id'] . '" selected>' . $row['group_name'] . '</option>';
			else $select_list .= '<option value="' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
		}
		while ( $row = $db->sql_fetchrow($result) );
  	 $select_list .= "</select>";
	}

		$group_form = $select_list;

                $template->assign_vars(array(
			"NEWS_GROUP" => $group_form,
			"BOARD_NEWS" => $group_info['news'],

			"L_NEWS_TITLE" => $lang['News_title'],
			"L_NEWS_TEXT" => $lang['News_text'],
			"L_NEWS_CENSOR" => $lang['Edit_news'],
			"L_NEWS_GROUP" => $lang['News_group'],
			"L_BOARD_NEWS" => $lang['Board_news'],
			"L_SUBMIT" => $lang['Submit'],

			"S_NEWS_ACTION" => append_sid("admin_board_news.$phpEx"),
			"S_HIDDEN_FIELDS" => $s_hidden_fields)
		);

		$template->pparse("body");

		include('./page_footer_admin.'.$phpEx);
	}
	else if( $mode == "save" )
	{
		$group_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : 0;
		$group = ( isset($HTTP_POST_VARS['group']) ) ? trim($HTTP_POST_VARS['group']) : "";
		$news = ( isset($HTTP_POST_VARS['news']) ) ? trim($HTTP_POST_VARS['news']) : "";

		if($group == "" || $news == "")
		{
			message_die(GENERAL_MESSAGE, $lang['Must_enter_news']);
		}

		if( $group_id )
		{
			$sql = "UPDATE " . BOARD_NEWS_TABLE . " 
				SET group = '" . str_replace("\'", "''", $group) . "', news = '" . str_replace("\'", "''", $news) . "' 
				WHERE group_id = $group_id";
			$message = $lang['News_updated'];
		}
		else
		{
			$sql = "INSERT INTO " . BOARD_NEWS_TABLE . " (group, news) 
				VALUES ('" . str_replace("\'", "''", $group) . "', '" . str_replace("\'", "''", $news) . "')";
			$message = $lang['News_added'];
		}

		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, "Could not insert data into board news table ", $lang['Error'], __LINE__, __FILE__, $sql);
		}

		$message .= "<br /><br />" . sprintf($lang['Click_return_newsadmin'], "<a href=\"" . append_sid("admin_board_news.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

		message_die(GENERAL_MESSAGE, $message);
	}
	else if( $mode == "delete" )
	{
		if( isset($HTTP_POST_VARS['id']) ||  isset($HTTP_GET_VARS['id']) )
		{
			$group_id = ( isset($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id'];
		}
		else
		{
			$group_id = 0;
		}

		if( $group_id )
		{
			$sql = "DELETE FROM " . BOARD_NEWS_TABLE . " 
				WHERE group_id = $group_id";

			if(!$result = $db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, "Could not remove data from board news table", $lang['Error'], __LINE__, __FILE__, $sql);
			}

			$message = $lang['News_removed'] . "<br /><br />" . sprintf($lang['Click_return_newsadmin'], "<a href=\"" . append_sid("admin_board_news.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");

			message_die(GENERAL_MESSAGE, $message);
		}
		else
		{
			message_die(GENERAL_MESSAGE, $lang['No_news_selected']);
		}
	}
}
else
{
	$template->set_filenames(array(
		"body" => "admin/board_news_body.tpl")
	);

	$sql = "SELECT * 
		FROM " . BOARD_NEWS_TABLE ;
	if( !$result = $db->sql_query($sql) )
	{
		message_die(GENERAL_ERROR, "Could not query board news table", $lang['Error'], __LINE__, __FILE__, $sql);
	}

	$group_rows = $db->sql_fetchrowset($result);
	$group_count = count($group_rows);

	$template->assign_vars(array(
		"L_NEWS_TITLE" => $lang['News_title'],
		"L_NEWS_TEXT" => $lang['News_text'],
		"L_NEWS_GROUP" => $lang['News_group'],
		"L_BOARD_NEWS" => $lang['Board_news'],
		"L_EDIT" => $lang['Edit'],
		"L_DELETE" => $lang['Delete'],
		"L_ADD_NEWS" => $lang['Add_news'],
		"L_ACTION" => $lang['Action'],

		"S_NEWS_ACTION" => append_sid("admin_board_news.$phpEx"),
		"S_HIDDEN_FIELDS" => '')
	);

	for($i = 0; $i < $group_count; $i++)
	{
		$group = $group_rows[$i]['group'];




	$sql = "SELECT group_id, group_name
		FROM " . GROUPS_TABLE . "
		WHERE group_single_user <> " . TRUE;
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain group list', '', __LINE__, __FILE__, $sql);
	}

	if ( $row = $db->sql_fetchrow($result) )
	{
               do
		{
                        if ($row['group_id'] == $group) $group_name = $row['group_name'];
                        if ($group == "*") $group_name = "Alle Benutzer";                        
		}		
		while ( $row = $db->sql_fetchrow($result) );
		
	}



		$news = $group_rows[$i]['news'];
		$group_id = $group_rows[$i]['group_id'];

		$row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
		$row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];

		$template->assign_block_vars("news", array(
			"ROW_COLOR" => "#" . $row_color,
			"ROW_CLASS" => $row_class,
			"GROUP" => $group_name,
			"NEWS" => preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $news),

			"U_NEWS_EDIT" => append_sid("admin_board_news.$phpEx?mode=edit&id=$group_id"),
			"U_NEWS_DELETE" => append_sid("admin_board_news.$phpEx?mode=delete&id=$group_id"))
		);
	}
}

$template->pparse("body");

include('./page_footer_admin.'.$phpEx);

?>

Verfasst: 31.08.2004 06:07
von Demidrin
Ich hab den Code wie gewünscht gepostet, aber sieht denn da jetzt jemand was?

Er schafft es nicht Daten zu updaten oder einzufügen... Aber er schafft es Daten zu löschen, merkwürdigerweise...

Mfg

Demidrin