Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

objekt erschaffungs zähler in PHP





Frage

Hallo Ich habe eine member klasse in PHP erstellt und wollte eigentlich wissen, wie ich die namen hochzählen soll. also mal angenommen der mensch, der sich registriert, hat alles ausgefüllt und abgeschickt. PHP: $member1 = new member(); aber wenn der nächste kommt und ich wieder member1 mache, dann geht das doch nicht! wie soll ich die denn in MySQL speichern? Also was ich brauche ist quasi ein trick, den namen eines objekts immer hochzuzählen. Danke mfg TByte

Antwort 1 von Workaround

Da du ja von MySQL redest: Du kannst Spaltenwerte mit auto_increment für jede neue Spalte automatisch erhöhen
SQL:
CREATE TABLE test (
'member' VARCHAR( 255 ),
'id' INT AUTO_INCREMENT PRIMARY KEY
)


Und ansonsten hätte ich noch einen umständlichen "Trick":
PHP:
$mic = microtime(); //Damit jede Datei einzigartig ist.
for ($i = 0; $i <= $anzahl_der_member; $i++) {
  file_put_contents($mic".php", "$member".$i." = new member();\n", FILE_APPEND); //Hängt ein $memberX = new member(); an den Inhalt der Datei an
}
include $mic.".php"; //Bindet die Datei ein
unlink($mic.".php"); //Und löscht sie anschließend

Falls include wegen dem "$mic." nicht funktionieren sollte, schreibe es um zu
$inc = $mic.".php";
include $inc;


Antwort 2 von Elefunty

wenn es um mysql geht:
so datenbanken sind nicht an varaiblennamen gebunden.

du hast z.B. eine variable für den namen und eine variable für den index, bzw seine nummer in der db.

dann legst du einfach den namen in der db ab unter der inexnummer. diese hat in der db oft den namen id.
wenn du es machst, wie workaround vorschlug, erhöht sich der index, also feld 'id' immer automatisch für jeden member.

um mehrere member im script zu halten (unabhängig von der db), nutzt man üblicherweise arrays, les mal über arrays in bspw nem tutorial nach!

Ele

Antwort 3 von Workaround

Und um das zu erweitern:
Mit $array[] = 123; legst du automatisch 123 in das Ende des Arrays, ohne dass du einen Zeiger verwenden musst.
Das heißt, du könntest auch
for ($i = 0; $i <= $member_anzahl; $i++) {
  $member[] = new member();
}

machen.

Antwort 4 von Elefunty

danke für die erweiterung, wär ich nich drauf gekommen^^
ich proqqe üblicherweise C/C++ da macht man sowas alles mit zeigern und malloc() :o), oder mid std::vector^^

Ele

Antwort 5 von Workaround

Tja, da siehst du mal, wie einfach PHP gegenüber C(++) sein kann ;D

Antwort 6 von TByte

hallo

vielen dank, da hab ich für die nächste zeit viele möglichkeiten :)
Nochmals vielen Dank und EIN FROHES WEINACHTEN!

mfg
TByte