anpera.net
https://anpera.dyndns.org/phpbb3/

eien Tabelle account spezifisch errichten?
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=4557
Seite 1 von 2

Autor:  Dwyn [ Fr 06 Jun, 2008 10:48 ]
Betreff des Beitrags:  eien Tabelle account spezifisch errichten?

Hallo liebe leute,ich hab mal eine kleine frage: und zwar wie mache ich eine Daenbank tabelle User speziefisch wie die Accounts = user tabelle?

ooooder ist es auch möglich in der user eine Tabelle "Zutaten" zu machen die wie folgt funktionert:

$session[user][zutaten][wasser]=$anzahl

ich hab mir darüber nun 2 tage lang den kopf zerbrochen bin aber zu keinem wirklichen ergebnmis gekommen :/


währ elieb wenbn irh mir vllt helfen könntet

Autor:  Rikkarda [ Fr 06 Jun, 2008 12:32 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

such mal nach prefs

Autor:  Auric [ Fr 06 Jun, 2008 12:37 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Naja... ob es so sinnvoll ist da die Prefs so zu überfrachten weiß ich auch nicht... speziell wenn es über triviale Wert hinausgeht.

Erstmal legst du dafür die entsprechende Tabelle an und versiehts sie mit einem Primärschlüssel, der dann der acctid aus der Tabelle accounts entspricht (der einfachheit halber würde ich ihn auch acctid nennen).
Nun muss der inhalt der für den User zutreffenden Zeile (ich gehe jetzt mal aus, du willst nur eine Zeile pro User haben, also wie in der accounts) am Scriptanfang (page_header()) lesen und am Ende (page_footer()) wieder Schreiben, was ich verändert hat. Dazu nimmst du dir am besten ein Beispiel daran, wie es schon bei der accounts tabelle und $session['user'] gemacht wird - bei dir dann z.B. tabelle 'inventar' und $session['inventar']

Autor:  Jenutan [ Fr 06 Jun, 2008 13:10 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Der Hinweis mit den Prefs ist schonmal kein schlechter ;)

Dann schmeiß ich mal den Hinweise "serialize" und "unserialize" in den Raum ^^

Und natürlich noch das php-Handbuch:
http://www.php.net/manual/de/
Obwohl ich zugeben muss, die Beispiele sind nicht gerade einfach -.-'

---

Naja, damit kannst du Felder und Objekte in Zeichenketten (Strings) umwandeln,
die man dann problemlos in ein Datenbankfeld speichern kann...
Umgekehrt wandelt man den String aus der Datenbank bei jedem Aufruf in ein Feld oder Objekt zurück.

Ich hoffe, du kannst damit etwas anfangen. Alles vorgekaut zu bekommen ist ja langweilig ;)

MfG

Autor:  Rikkarda [ Fr 06 Jun, 2008 14:05 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

mir gings auch mehr darum sich den aufbau der nutzung bei den prefs anzusehen:)

Autor:  Dwyn [ Fr 06 Jun, 2008 14:38 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Aaaaah dummer timeout >:< *noch mal abtippsel*

Also vielen dank ersteinmal für eure Schnelle hilfe^^ .. ich hab Aurics Idee nun zu erts versucht und naja ich bin an dem teil mit der common (pageheader/fooder gescheitert weil ichd a nicht wusste was du meinst^^.)

udn so kam ich zu deien ridee mit der prefs, Rikka.

Ich hab einfach mal, irgendwo nen $session[user][prefs][wasser]+=1 gestezt, und hab mal nen Naja test inventar errichtet eifnach nur mitd er abfrage, ob es bei $session[user][prefs][wasser]==1 funktioniert, oder nicht funktioniert, und hey es hat funktioniert x)

Danke *bussi* ich denke nun mal, ich werde diese funktion de rprefs mal kpieren und naja eifnach umbennennen um den gleichen Effeckt der 'prefs' auf 'zutaten' zu übertragen (ja ich schau mir dabei natürlich an wie es funktioniert x))

nur stellt sich mir dann noch eien frage, denn dazu muss ich ein wneig tiefer ausgholen was das programm später bewirken soll und zwar soll es eine Nunja Alchimistenhütte auf Hadriels /rpcmd mod basierend werden.

und zwar soll man die items nicht droppen können, sondenr man kann sie nur zb von ELfen= elfenhaar erhalten. (um da sganze nen bissl schwieriger zu machen^^)

jetztw eiß ich abe rnicht wie ich mit dem Mod von Hadriel einen 3. parameter beeinflusse und nicht den wie gewohnt 2.

$this->bbcode_second_pass_code('', 'case "raus":
$frm = "dudarfstraus = 1"; ')
besagt ja den wert der auf was geändert werden soll (in meinem falle ist es der wert mit dem weibliche user unsere Männlichen aus dem Amazonendorf herraus lassen können x))

$this->bbcode_second_pass_code('', 'mysql_query("UPDATE accounts SET ".$frm." WHERE login = '".$parts[1]."';"); ')

ist ja die dazugehörige query

meine frage ist nun in wie fern muss ich denn das $frm abändern so das der drippe parameter verändert wird? ;_;

also ich hätet da eine idee und zwar:
$this->bbcode_second_pass_code('', 'mysql_query("UPDATE accounts SET `prefs` `".$frm."` WHERE login = '".$parts[1]."';"); ')

würde das so funktonieren? (kanns grad leide rnit testen :x)


wärhe lieb wenn irh mir noch diese eine frage beantwirtebn könntet dann habt irh ertsmal wieder ruhe vor mir nervensäge x)

Autor:  MySql [ Fr 06 Jun, 2008 18:10 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Wozu nimst du den MySQl_QUERY , wenn wir in LotGD doch einen Db_QUERY haben? òó

Autor:  Eichi [ Fr 06 Jun, 2008 19:06 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Dwyn hat geschrieben:
$this->bbcode_second_pass_code('', 'mysql_query("UPDATE accounts SET `prefs` `".$frm."` WHERE login = '".$parts[1]."';"); ')


Der Punkt ist ein verkettungsoperator, was soviel heißt wie, dass die verschiedenen Strings aneinandergekettet werden.

In diesem Fall würden zwei Worte da drin stehen, einmal `prefs` und mit einem Leerzeichen davon getrennt der Inhalt der Variablen $frm

Wenn ich das nun richtig verstanden habe, möchtest du in die accountstabelle ein Array schreiben? Das geht nicht, du kannst nur eindiminsional speichern, du kannst aber arrays in Strings umwandeln und diese in die Tabelle speichern, beim abrufen kannst du diese wieder exploden und zu einem Array machen.
Ein Beispiel wäre ein String wie folgt ->

$string = "1Dimension.2Dimension,3Dimension.2Dimension";
Mit Explode und dem dazgehörigen Zeichen wird hier zum Beispiel am Punkt die Dimension getrennt und am Komma die einzelnen Werte der jeweiligen Dimension.
Lässt sich gut an allowednavs ansehen ;)

PS.: Gut, es gibt auch Ausnahmen wie SET, da kannst du mehrdimensional in die DB speichern, ist aber für diesen Fall nicht geeignet.

Außerdem, verwende die db_query-Funktion in LogD, ist wegen Loggen etc. sinnvoller.

@MySql
Um keine Verwirrung zu stiften würd ich die Funktionen klein schreiben, sonst kopiert er die von dir und wundert sich warums nich geht, da auf groß-/kleinschreibung geachtet wird ;)


LG, Eichi

Autor:  Dwyn [ Fr 06 Jun, 2008 20:15 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

weiso ich das so benutz?*g* weils so im Script von Hadriel stand, es funktionierte und iche s nich besser wusste *g*

okay udn da ich nen SQL noob bin, Eichi, hab ich auch nur einen bruchteil von dem verstanden was du geschrieben hast.. de rbruchteil den ich vertsanden habe, wärhe das das was ich vorhab unmöglich ist? >.<


mhh dann muss ich mir wohl etwas anderes überlegen wie ein Elf einem anderen user eien strähne seiens haars geben kann :/ schade ich hätt es so echttoll gefunden >.<

aber danke für die shcnell antwort^^

Autor:  Eichi [ Sa 07 Jun, 2008 00:13 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Ja, ist nicht ganz so einfach dies Thema würd ich sagen, wenn du da noch nicht so die Ahnung hast würde ich es vielleicht noch lassen, aber mit einer neuen Tabelle und dazugehörigen Items etc. kannste es ja mal versuchen und wie vorgeschlagen mit einer ID, die zur acctid des Users passt, damit dann die Items auslesen, da gehört wohl auch etwas kreativität aus ^^

LG, Eichi

Autor:  Drazaar [ Sa 07 Jun, 2008 12:24 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Das Array aus der DB holen (mit unserialize), den betroffenen Wert ändern (kann man mit foreach durchlaufen lassen, oder desgleichen) und dann mit serialize wieder in der DB speichern.

Geht alles irgendwie.. Ist aber schon auffällig. Da wäre eine eigene Tabelle wohl doch im Endeffekt einfacher. (ob performanter kann ich nicht sagen, Eliwood? xD)


Eichi hat geschrieben:
da auf groß-/kleinschreibung geachtet wird ;)

Wird es das?

Autor:  Eichi [ Sa 07 Jun, 2008 15:28 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Je länger die accounts-Tabelle wird, desto langsamer wird das Spiel da diese Tabelle mit jedem Klick gelesen und beschrieben wird, egal ob da Werte drin stehen die in dem Moment gebraucht werden oder nicht.
Eine eigene Tabelle für Items zum Beispiel würde dann das ganze Spiel erheblich beschleunigen, außer an dem Punkt, wenn auf die Tabelle zugegriffen wird, da dann accounts und die andere Tabelle zusätzlich ausgelesen/beschrieben werden müssen (Subselects, JOINs etc. verlangsamern das doch erheblich).
Aber verhältnismäßig gewinnt man durch eine extra-Tabelle SEHR viel Zeit ^^

Zur Groß-/Kleinschreibung -> JA

Autor:  Drazaar [ Sa 07 Jun, 2008 23:31 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

$Blubb != $blubb
aber
Str_Replace == str_replace
genau so
DB_Query == db_query

Zumindest bei mir...

Autor:  Eichi [ So 08 Jun, 2008 12:12 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

PHP interpretiert auch Fehler, weil es funktioniert muss es nicht gleich heißen, dass es richtig ist :baeh:

Klar, bastelt mal rum, wenn ihr dann mal ähnliche Funktionen schreibt, die sich nur durch groß-/kleinschreibung unterscheiden könnt ihr aber nichtmehr nachvollziehen warum die Funktionen nichtmehr funktionieren..

LG, Eichi

Autor:  Drazaar [ Mo 09 Jun, 2008 12:10 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Ok Herr Besserwisser, dann müsste DIESES Script wie in den Kommentaren funktionieren. Ich hab extra für dich mal ein bisschen rumgebastelt. Rate mal im Vorraus welcher Fehler auftritt...........!

$this->bbcode_second_pass_code('', '<?
/*
@desc Funktion, die eine Zahl quadriert
@param INT Zahl, die quadriert werden soll
@return INT quadrierte Zahl
*/
function power($value) {
$new_value = $value * $value;

return $new_value;
}

/*
@desc Funktion, die eine Zahle quadriert und jeweils eine zweite Zahl darauf addiert
@param INT Zahl die quadriert werden soll
@param INT Zahl die auf das Ergebnis addiert werden soll
@return INT Das Ergebnis der Rechnung
*/
function PoWeR($value1, $value2) {
$power_value = $value1 * $value1;
$new_value = $power_value + $value2;

return $new_value;
}

$value1 = power(2);
echo $value1; // 4

$value2 = PoWeR($value1, 5);
echo $value2; // 21

?>')

Denn nach deiner Meinung/Wissen müsste das ja ausgezeichnet funktionieren, nicht? :zack:


Oder versuch das mal:
$this->bbcode_second_pass_code('', '<?
// @desc Egal, ich werd sowieso als Fehler ausgegeben 8[
function STR_Replace() {
echo 'Ich habe keinen Sinn';
}

STR_Replace();
?>')

Du denkst noch nicht wirklich, dass du PHP vorgegebene Funktionen überschreiben kannst, indem du einen Buchstaben groß machst? Und nein, das ist kein Fehler in PHP.

LG
Draza´ar

Autor:  Auric [ Mo 09 Jun, 2008 12:21 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

[Klugscheiß-Modus]
PHPDoc wird mit /** eingeleitet, nicht mit /* und üblicherweise kommt an den Anfang jeder sochen Zeile ein *
[/Klugscheiß-Modus]

Autor:  Eichi [ Mo 09 Jun, 2008 12:48 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Drazaar hat geschrieben:
Du denkst noch nicht wirklich, dass du PHP vorgegebene Funktionen überschreiben kannst, indem du einen Buchstaben groß machst? Und nein, das ist kein Fehler in PHP.


Ich habe nicht gesagt, dass das Fehler in PHP sind :nene:
Damit sind Fehler der Programmierer gemeint, die PHP interpretieren kann, auch richtig..

So wie Firefox oder andere alternativen Browser, als blöedes Beispiel, Fehler des Internetexplorer interpretieren ^^

In Variablen wird drauf geachtet gut, ich habe eben aber gelernt, dass in Funktionen die Groß-/Kleinschreibung scheinbar tatsächlich nicht beachtet wird, eine Frage der Übersicht und des Geschmacks wie es mir scheint, danke, doof wenn man es so lernt und es doch nicht so ist.. :lol:

Trotzdem bin ich dafür, dass man sich da an die Funktionsnamen und deren Schreibweisen hält, damit die Übersicht gewährleistet ist.
db_query wird in der dbwrapper klein geschrieben, daher würde ich sie im Aufruf auch klein schreiben, wenn dort stehen würde DB_Query, dann würde ich es im Aufruf auch so schreiben.

Wie dem auch sei, Geschmackssache und so..


LG, Eichi

Autor:  Drazaar [ Mo 09 Jun, 2008 14:35 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Auric hat geschrieben:
[Klugscheiß-Modus]
PHPDoc wird mit /** eingeleitet, nicht mit /* und üblicherweise kommt an den Anfang jeder sochen Zeile ein *
[/Klugscheiß-Modus]

Danke, wusste ich nicht. ^^

@Eichi: Ja, da gebe ich dir recht. Wobei z.B. bei substr es ganz hilfreich ist SubStr zu schreiben. Oder StrLen. Ich finde, man erkennt es dann schneller. Wobei solche Sachen wirklich Kinkerlitzchen sind, die man jetzt wirklich nicht beachten muss. So lange man nicht solche Späße anfängt wie StR_rEpLaCe oder so, passt es ^^

Aber das ganze ist ja nicht Thema hier ^^

€: Wie meinst du das eigentlich, dass FF und Konsorten irgendwelche Fehler vom IE interpretieren?

Autor:  Eichi [ Mo 09 Jun, 2008 21:28 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Hast du mal versucht standartkonform im IE zu programmieren Drazaar?

Ist ein Abenteuer sag ich dir, das Problem ist nur, genauso wie auch ich es auf Arbeit muss weil es Chef so will, richten sich die meisten Webseitenbetreiber nach dem IE, da dieser Martkführer ist, hier in Europa zum Glück nicht mehr ganz, aber immerhin auch noch fast zu 60%...

Die Fehler, die im IE sind, müssen die meisten Programmierer absichtlich einbauen, damit es so aussieht, wie es die Webseitenbetrachter sehen soll.

Browser wie Firefox oder Opera leiden darunter, da diese besser sein müssen wie der IE, trotzdem alles so anzeigen können müssen wie der IE es tut..

LEIDER!

Aber BLUBBBEL sei dank, der IE verliert stetig an Nutzern, hauptsächlich an Firefox, wenn die Redmonder dann endlich anfangen würden Standards einzuhalten, entwickle ich auch gerne wieder für den xD

LG, Eichi

Autor:  Drazaar [ Di 10 Jun, 2008 00:56 ]
Betreff des Beitrags:  Re: eien Tabelle account spezifisch errichten?

Ja, ich habe mit IE programmiert, früher. Eigentlich war es teilweise sehr angenehm *g*

"Ein Fehler? Wo? Läuft doch alles!" xD

Seite 1 von 2 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/