Seite 1 von 1

Funktion einer ID zuweisen

Verfasst: 15.08.2006 12:54
von Apotemnophiliac
hallo,
ich bräuchte wiedermal eure hilfe: ich hab jetzt in meinem mod, den ich baue (gewinnspielmod) eine funktion eingebaut die verschiedene moden erlaubt (edit, delete... aufrufbar über .php?mode=... )

das problem ist nur dass ich diese funktion einer bestimmen id in der gewinnspieldatenbank zu weisen möchte; dass heißt wenn ich jetzt gewinnspiel nummer 3 ändern will, ich die funktion edit für gewinnspiel nummer 3 aufrufe. nun weiß ich aber nicht, wie ich diese ID in den link einbauen kann.

Der Code (siehe Funktion)

Code: Alles auswählen

<?php
/***************************************************************************
 *                              admin_gewinnspiel.php
 *                              -------------------
 *     begin                : Saturday Aug 5 2006
 *     copyright            : (C) 2006 Neldoreth
 *     site                 : http://www.neldoreth.net
 *
 ****************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);

if( !empty($setmodules) )
{
	$filename = basename(__FILE__);
	$module['Gewinnspiel']['Gewinnspiel hinzufügen'] = $filename;
	return;
}

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

// Sprachdatei

if( !file_exists($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_gewinnspiel.' . $phpEx)) {
	$board_config['default_lang'] = 'english';
}
include_once($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_gewinnspiel.' . $phpEx);

// Sprachdatei

// Funktionen

if( isset( $HTTP_POST_VARS['mode'] ) || isset( $HTTP_GET_VARS['mode'] ) )
{
	$mode = ( isset( $HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
	$mode = htmlspecialchars($mode);
}
else
{
	$mode = '';
}

// Funktion Editieren / Löschen

if ( $mode == 'edit' || $mode == 'save' )
{
	if ( ( $mode == 'save' && isset( $HTTP_POST_VARS['submit'] ) ) )
	{
		$gewinnspiel_id = intval($HTTP_POST_VARS['id']);

		if( $HTTP_POST_VARS['delete'] )
		{
			$sql = "SELECT id 
				FROM " . GEWINNSPIEL_TABLE . "  
				WHERE id = $gewinnspiel_id";
			if( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Fehler', '', __LINE__, __FILE__, $sql);
			}
			
		$row = $db->sql_fetchrow($result);
			
		$sql = "DELETE FROM " . GEWINNSPIEL_TABLE . "
				WHERE id = $gewinnspiel_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Gewinnspiel konnte nicht gelöscht werden', '', __LINE__, __FILE__, $sql);
			}
		}
	
	$gewinnspiel_name = $HTTP_POST_VARS['gewinnspiel_name']; 
	$gewinnspiel_bildurl = $HTTP_POST_VARS['gewinnspiel_bildurl']; 
	$gewinnspiel_beschreibung = $HTTP_POST_VARS['gewinnspiel_beschreibung']; 
	$gewinnspiel_ende = $HTTP_POST_VARS['gewinnspiel_ende'];
	
	$sql = "UPDATE " . GEWINNSPIEL_TABLE . "
			SET gewinnspiel_name = '" . str_replace("\'", "''", $gewinnspiel_name) . "', gewinnspiel_bildurl = '" . str_replace("\'", "''", $gewinnspiel_bildurl) . "', gewinnspiel_beschreibung = '" . str_replace("\'", "''", $gewinnspiel_beschreibung) . "', gewinnspiel_ende = '" . str_replace("\'", "''", $gewinnspiel_ende) . "'
				WHERE id = $gewinnspiel_id";

	}
}

// Funktion Editieren / Löschen

// Funktion Hinzufügen
	 
	if (isset($HTTP_POST_VARS["submit"])) {
	  
	  $gewinnspiel_name = $HTTP_POST_VARS['gewinnspiel_name']; 
	  $gewinnspiel_bildurl = $HTTP_POST_VARS['gewinnspiel_bildurl']; 
	  $gewinnspiel_beschreibung = $HTTP_POST_VARS['gewinnspiel_beschreibung']; 
	  $gewinnspiel_datum = date("Y-m-d"); 
	  $gewinnspiel_ende = $HTTP_POST_VARS['gewinnspiel_ende'];
	
		$sql = "INSERT INTO " . GEWINNSPIEL_TABLE . " (name,bildurl,beschreibung,datum,ende)
		VALUES ('$gewinnspiel_name','$gewinnspiel_bildurl','$gewinnspiel_beschreibung','$gewinnspiel_datum','$gewinnspiel_ende')";
	  
	  if ( !$db->sql_query($sql) )
	  {
	    die($sql);
	  }
	  else
	  {
	    $message = $lang['gewinnspiel_admin_config_updated'] . "<br /><br />" . sprintf($lang['gewinnspiel_click_return_config'], "<a href=\"" . append_sid("admin_gewinnspiel.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
	    message_die(GENERAL_MESSAGE, $message);
	  }
	
	}
	
// Funktion Hinzufügen
	

	
$template->set_filenames(array(
    'admin_gewinnspiel' => 'admin/admin_gewinnspiel_add.tpl',
));

	$template->assign_vars(array(
		"L_GEWINNSPIEL_ADMIN_TITEL" => $lang['Gewinnspiel_add_admin_titel'],
		"L_GEWINNSPIEL_ADMIN_DESC" => $lang['Gewinnspiel_add_admin_desc'],
		
		"L_SUBMIT" => $lang['Submit'],
		"L_RESET" => $lang['Reset'],
		"L_YES" => $lang['Yes'],
		"L_NO" => $lang['No'])
	);
	
	$template->pparse('admin_gewinnspiel');
	include('./page_footer_admin.'.$phpEx);


?>
könnt ihr mir etwas auf die sprünge helfen?

Liebe grüße
Moritz

Verfasst: 15.08.2006 13:30
von faraday
Einfach

Code: Alles auswählen

append_sid('deinedatei.'.phpEx.'?mode=edit&id='.$gewinnspiel_id);
Aber:
1. An deiner Stelle würde ich eine for Schleife benutzen.
2. Das

Code: Alles auswählen

    if( $HTTP_POST_VARS['delete'] )
      {
         $sql = "SELECT id
            FROM " . GEWINNSPIEL_TABLE . " 
            WHERE id = $gewinnspiel_id";
         if( !($result = $db->sql_query($sql)) )
         {
            message_die(GENERAL_ERROR, 'Fehler', '', __LINE__, __FILE__, $sql);
         }
         
      $row = $db->sql_fetchrow($result); 
its eigentlich total überflüssig.

Verfasst: 16.08.2006 09:52
von Apotemnophiliac
Hallo
Danke für den Codeschnipsel hat mich weitergebracht, nur leider funktioniert die Ausführung der Funktion nicht, in diesem Fall delete:

hier zum code

Der Link für das Editieren wird zwar richtig ausgegeben (....php?mode=delete&id=X), dennoch wird die Zeile nicht gelöscht.

Könnt ihr mir weiterhelfen?

Liebe Grüße

Verfasst: 16.08.2006 11:49
von faraday
Wie wärs mal hiermit:
Eine PHP-Datei zum Download bereitstellen
Das ist übersichlicher :wink:

Verfasst: 16.08.2006 12:07
von Apotemnophiliac
faraday hat geschrieben:Wie wärs mal hiermit:
Eine PHP-Datei zum Download bereitstellen
Das ist übersichlicher :wink:
Habs geändert, als ob ich pastebin nie verwenden würde.. :wink:

Liebe Grüße