[Sql-Abfrage] Reset

05/23/2011 19:20 ~Product~#1
Hallo,

ich suche eine abfrage für sql alias datenbank halt [xD]
womit man ALLE chars restatten kann also das alle wieder die möglichkeit haben ihre statpoints zu verteilen !
wie kann ich sowas machen ohne großen aufwand ?

mfg.
05/23/2011 20:14 Mariodev#2
Keine Ahnung wie deine DB Strucktur ist

Aber einfach jedes STA und so auf 15 UPTADEN

und dann statpoints auf ka was du halt willst.

und als where nimmst am besten :
Where m_idPlayer != '0'

Ka lang nimma in DB ^^ und das nun aus dem kopf was ich noch hatte hoffe hilft :D
05/23/2011 20:14 ~Product~#3
ich will es aber bei allen chars
und die chars sind unterschiedliches level :s
05/23/2011 20:16 Mariodev#4
UPDATE [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL]
SET [m_nStr] = '15'
,[m_nSta] = '15'
,[m_nDex] = '15'
,[m_nInt] = '15'
,[m_nRemainGP] = 'Die anzahl was sie haben sollen als stats'
WHERE m_idPlayer != '0'
GO



das mit WHERE m_idPlayer != '0' <<< Bedeutet alle die nicht 0 haben oder verwechsel ich das :ooooo ne XD
05/23/2011 20:33 Pumbaaa#5
Machs per php :P
05/23/2011 20:42 .Tear#6
Im endeffekt braucht er die MSSQL abfrage doch trozd oder?! xD
05/23/2011 20:44 Pumbaaa#7
Aber mit php lässt sichs leichter mit Variablen arbeiten(Weiß nicht, ob mit MSSQL auch, hab mich da nie mit beschäftigt)
05/23/2011 20:55 ziBBer™#8
Quote:
Originally Posted by Mariodev View Post
UPDATE [CHARACTER_01_DBF].[dbo].[CHARACTER_TBL]
SET [m_nStr] = '15'
,[m_nSta] = '15'
,[m_nDex] = '15'
,[m_nInt] = '15'
,[m_nRemainGP] = 'Die anzahl was sie haben sollen als stats'
WHERE m_idPlayer != '0'
GO
Finde ich schon mal ein anfang(wenn das funktiniert), aber wir brauche eine Abfrage wo man am besten alle level restaten kann, weil jedes level restatet werden muss und unterschiedliche Verteilungs-Punkte(GP) frei sind.
05/23/2011 21:02 Mariodev#9
Quote:
Originally Posted by zibber View Post
Finde ich schon mal ein anfang(wenn das funktiniert), aber wir brauche eine Abfrage wo man am besten alle level restaten kann, weil jedes level restatet werden muss und unterschiedliche Verteilungs-Punkte(GP) frei sind.
wie alle level?

dann müsstest dir aufschreiben wie viel GB das lvl bekommt und machst dann bei Where m_levl oder wie das heißt = 'DAS LEVEL was resetet werden soll'



PS: Thanks nicht vergessen :P
05/23/2011 21:05 ziBBer™#10
Gibt es aber nicht eine leichtere Methode all-Level mit einer Abfrage zu restaten? Weil jedes einzelne level zu Restaten wäre eine große Zeitbörse. Sql ist auch leider nicht mein Fachbereich, aber vllt ist es auch möglich mit einer Abfrage alle zu restaten.

MFG ziBBer
05/23/2011 21:11 Mariodev#11
Hmm also meines wissen ist das am leichtesten oder ? ka.. hab noch nie Stats von allen resetet.

Oder du gibst einfach jeden 350 und fertig :D


Aber wenn du für jedes level eine Variable macht... dauert lange aber beim nächsten mal ist es leicht :D
05/23/2011 21:18 ziBBer™#12
Hast schon recht damit und dauern tut es ebenfalls, aber wird auch richtig sein. Nur vllt gibt es ein schnelleren weg. Wir werden dann nacher schauen welchen wir nehmen, btw. jemand kann full restaten.
~Thanks hast du von mir aber.

MFG ziBBer
05/23/2011 21:20 Mariodev#13
ja mal schauen bin auch neugirieg ob es schnelleren weg gibt, warscheinlich schon aber ka :D Danke:D
05/24/2011 21:23 ziBBer™#14
Immer noch auf der suche: Alle chara's mit einer Abfrage zu restaten.
Hoffe auf Hilfe...

~push
05/24/2011 22:19 Pumbaaa#15
Ist nen nicht getestetes php-Script, habs eben zusammengecodet, vill hilfts ja weiter ;)

Code:
<?php
	mssql_connect( 'Pumbaa-PC\SQLEXPRESS', '', '' );
	$query = mssql_query("SELECT * FROM CHARACTER_01_DBF.dbo.CHARACTER_TBL") ;
	$num = mssql_num_rows( $query );
	//$length = strlen( $num );
	for( int i = 1; i <= $num; i++)
	{
		if( strlen( i ) == 1 )
		{
			$id = "0000000"+i;
		}else if( strlen( i ) == 2 )
		{
			$id = "000000"+i;
		}else if( strlen( i ) == 3 )
		{
			$id = "00000"+i;
		}else if( strlen( i ) == 4 )
		{
			$id = "0000"+i;
		}else if( strlen( i ) == 5 )
		{
			$id = "000"+i;
		}else if( strlen( i ) == 6 )
		{
			$id = "00"+i;
		}else if( strlen( i ) == 1 )
		{
			$id = "0"+i;
		}else if( strlen( i ) == 1 )
		{
			$id = ""+i;
		}
		$query = mssql_query("SELECT * FROM CHARACTER_01_DBF.dbo.CHARACTER_TBL WHERE m_idPlayer = $id");
		$row = mssql_fetch_array( $query );
		$remain = ( $row['m_nStr'] - 15 ) + ( $row['m_nSta'] - 15 ) + ( $row['m_nDex'] - 15 ) + ( $row['m_nInt'] - 15 ) + $row['m_nRemainGP'];
		mssql_query("UPDATE CHARACTER_01_DBF.dbo.CHARACTER_TBL SET m_nRemainGP = $remain WHERE m_idPlayer = $id");
		
	}
?>