Wert in MYSQL ändern?

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.
Antworten
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Wert in MYSQL ändern?

Beitrag von Domitz »

Hallo, ich habe folgende Frage:

Wie schaffe ich es, die Zahl aus ".$userdata['world']." zu ändern?

Habe von MySQL leider keine Ahnung Sad

Also ich möchte einfach den Wert mit 50 addieren.

Mein Ansatz: (phpBB 2)

Code: Alles auswählen

<?php
$id = $_GET["id"];
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, $user_id, $username, PAGE_INDEX);
init_userprefs($userdata);

//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Parkbesuche';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);



/***** Inhaltsbereich ******/
error_reporting(E_ALL);
db_connect();
   $sql="UPDATE phpbb_users
SET user_world = 500
WHERE user_id = "2"
echo "Erfolgreich";";
   $result = mysql_query($sql);
   db_disconnect();


//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>  
Kommt leider eine weiße Seite...
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Ähm, wo hast du den Code her?

Entweder du hast schlecht kopiert oder das kopierte war falsch.

Wofür ist $id = $_GET["id"]; ?
Diese Id brauchst du gar nicht?
Wo addierst du $userdata['world'] + 50?
Was sind das für Funktionen wozu brauchst du die dort??

Code: Alles auswählen

db_connect();
mysql_query()
db_disconnect(); 
Warum setzt du das Error-Level auf E_ALL, und das mitten drin?
Warum ist bei dem Echo ein ";"; am Ende?

Ach ja ich habe das Script mal getest, wie zu erwarten war ein Fehler:

Code: Alles auswählen

Parse error: syntax error, unexpected T_LNUMBER in D:\xampp\htdocs\phpBB2\test.php on line 25
Nachdem ich den Syntax-Fehler behoben habe bekomme ich den Fehler:

Code: Alles auswählen

Fatal error: Call to undefined function db_connect() in D:\xampp\htdocs\phpBB2\test.php on line 22
Also bräuchte ich die Funktion db_connect() von dir, da diese nicht zu phpBB2 und auch nicht zu php gehört, db_disconnect() bräuchte ich dann auch noch. Arbeiten die Funktionen dann mit dem normalen PHP mysql_*() Funktionen zusammen?

Willst du $result nicht noch irgendwie prüfen, wenn ein Fehlerauftritt? oder macht das alles db_disconnect() als universal Funktion?
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Beitrag von Domitz »

Das hochsetzen etc schaffe ich alleine.
Habe nur leider keine Ahnung von MYSQL und müsste nur wissen, wie ich den Wert ändern kann.

Hab ich vergessen zu sagen, sorry.
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Meine Anmerkungen bezogen sich fast alle auf PHP-Fehler...

Eine Updaten sieht unfähr so aus:

Code: Alles auswählen

			$sql = "UPDATE " . X_TABLE . " SET
				x = '" . $y . "'
				WHERE x = '$z'";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, "Fehler x bei y", "", __LINE__, __FILE__, $sql);
			}
Eine Abfrage aus der DB ungefähr so:

Code: Alles auswählen

				$sql = "SELECT * 
					FROM " . X_TABLE . "
					WHERE x = y";
				if ( !($result = $db->sql_query($sql)) )
				{
					message_die(GENERAL_ERROR, "Feher x bei y", "", __LINE__, __FILE__, $sql);
				}


				while( $row = $db->sql_fetchrow($result) )
				{
					$a = $row[x'];
				}
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Beitrag von Domitz »

Meinst du so:

Code: Alles auswählen

<?php
$id = $_GET["id"];
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, $user_id, $username, PAGE_INDEX);
init_userprefs($userdata);

//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Titel';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

$y = "50";
$z = "2";

         $sql = "UPDATE " . phpbb_users . " SET
            user_word = '" . $y . "'
            WHERE user_id = '$z'";
         if( !$db->sql_query($sql) )
         {
            message_die(GENERAL_ERROR, "Fehler x bei y", "", __LINE__, __FILE__, $sql);
         }

//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Edit: Klappt einwandfrei, danke =)
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Wenn du jetzt noch x und y durch sinnvollere Variablen-Namen ersetzt, und Ein Sinnvolle Fehlermeldung wählst, und dann noch anstatt von phpbb_users USERS_TABLE nimmst sollte es klappen.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Antworten

Zurück zu „Coding & Technik“