Datenbank Fehler -> Eintragen von Werten

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Demidrin
Mitglied
Beiträge: 28
Registriert: 27.08.2004 21:47

Datenbank Fehler -> Eintragen von Werten

Beitrag 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
xabbuh
Mitglied
Beiträge: 20
Registriert: 30.08.2004 19:38

Re: Datenbank Fehler -> Eintragen von Werten

Beitrag von xabbuh »

Code: Alles auswählen

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

Hast du dir mal $sql mit print() anzeigen lassen?
Demidrin
Mitglied
Beiträge: 28
Registriert: 27.08.2004 21:47

Beitrag 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?
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag 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'
Demidrin
Mitglied
Beiträge: 28
Registriert: 27.08.2004 21:47

Beitrag 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?
xabbuh
Mitglied
Beiträge: 20
Registriert: 30.08.2004 19:38

Beitrag von xabbuh »

Hast du denn mal print($sql) gemacht? Was hat er dir ausgegeben?
Demidrin
Mitglied
Beiträge: 28
Registriert: 27.08.2004 21:47

Beitrag von Demidrin »

Kommt das selbe raus...

Mmhhh....

Woran kann es sonst liegen...

Demidrin
Benutzeravatar
Leuchte
Ehemaliges Teammitglied
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Leuchte »

Kannst du mal den kompletten Code posten bzw. als Datei verlinken?
Demidrin
Mitglied
Beiträge: 28
Registriert: 27.08.2004 21:47

Beitrag 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);

?>
Demidrin
Mitglied
Beiträge: 28
Registriert: 27.08.2004 21:47

Beitrag 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
Antworten

Zurück zu „Coding & Technik“