objekt erschaffungs zähler in PHP
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 schreiben
Antwort 1 von Workaround vom 23.12.2020, 12:17 Options
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 vom 23.12.2020, 12:34 Options
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 vom 23.12.2020, 12:39 Options
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 vom 23.12.2020, 12:53 Options
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 vom 23.12.2020, 13:50 Options
Tja, da siehst du mal, wie einfach PHP gegenüber C(++) sein kann ;D
Antwort 6 von TByte vom 24.12.2020, 17:53 Options
hallo
vielen dank, da hab ich für die nächste zeit viele möglichkeiten :)
Nochmals vielen Dank und EIN FROHES WEINACHTEN!
mfg
TByte