PHP Werte in Schleife in ein Array schreiben

mischaef

Kassettenkind
Teammitglied
Registriert
Aug. 2012
Beiträge
5.939
Nabend zusammen,

ich hänge bereits den ganzen Abend an einem Problem, zu dem ich bisher auch keine Lösung gefunden habe. Würde mich nicht wundern wenn die Sache für manchen ein "Klacks" wäre, bei mir will es jedoch einfach nicht funktionieren.

Ich möchte einfach aus einer Schleife nacheinander bei bestimmten Durchgängen bestimmte Werte in ein Array schreiben, das ich dann an eine Session übergebe, um es später wieder auszulesen. Das Problem dabei ist, dass es unbekannt ist, wie viele der Einträge in der DB dafür in Frage kommen - num_rows kann also nicht verwendet werden.

Die Abfrage, das Schreiben in die Session und auch das Abrufen an anderer Stelle klappt - jedoch immer nur mit einem Wert, alle anderen werden nicht in das Feld geschrieben - count ergibt immer nur einen Eintrag im Array.

Code:
$_SESSION["name_vorhanden"] = array($name);

funktioniert genauso wenig als wenn ich mit einem Zähler arbeite:

Code:
$_SESSION["name_vorhanden"][$i] = array($name);

Hätte evt. jemand eine Hinweis für mich, wonach ich schauen sollte?


Besten dank

Michael
 
Soll $_SESSION['name_vorhanden'] eine numerisch indizierte Liste von Namen enthalten?

Einem Array ein neues Element hinzufügen:
$_SESSION['name_vorhanden'][] = $name

Namen können in diesem Fall bliebig oft vorkommen. Wenn jeder Name nur einmal vorkommen soll und $name ein skalarer Wert ist (String, Integer, Float, Bool), kann der Name auch als Schlüssel verwendet werden:
$_SESSION['name_vorhanden'][$name] = true
 
  • Gefällt mir
Reaktionen: mischaef
Code:
// Initialisiere das Session-Array, falls es noch nicht existiert
if (!isset($_SESSION["name_vorhanden"])) {
    $_SESSION["name_vorhanden"] = array();
}

// Nehmen wir an, Sie durchlaufen hier eine Datenbankabfrage oder eine ähnliche Schleife
while (/* Bedingung, die Ihre Schleife steuert */) {
    // $name wird irgendwie bestimmt, z.B. durch eine Datenbankabfrage
    $name = /* Ihr Code, um den Namen zu bestimmen */;
    
    // Füge $name zum Session-Array hinzu
    $_SESSION["name_vorhanden"][] = $name; // Kurzform für array_push()
}

// Jetzt enthält $_SESSION["name_vorhanden"] alle Namen, die Sie hinzugefügt haben.
 
  • Gefällt mir
Reaktionen: netzgestaltung und mischaef
Bin gerade rest dazu gekommen, es auszuprobieren, funzt erstmal alles bestens.

Besten dank für die schnelle Hilfe!
 
Zuletzt bearbeitet:
Nicht eine Seite deiner Wbsite ist ohne HTML Warnungen, Hinweisen und Fehlern..bevor du dich an PHP machst, würde ich erst einmal das HTML ordentlich aufräumen. Deine Datenschutz Seite zeigt mir z.B. HTML Tags...Dein > Freund
Das ist nicht böse gemeint im Gegenteil...
 
Das liegt dann am Plugin. Da kann ich aktuell wenig machen und muss auf ein Update warten. Und wieso sollen auf den anderen Seiten Warnungen kommen?
 
mischaef schrieb:
Und wieso sollen auf den anderen Seiten Warnungen kommen?

Jag die Seiten doch durch den Validator dann siehst du was los ist...oder erwartest du jetzt von mir das ich dir die Probleme jeder Seite auf den Teller serviere? ich mein, du musst das nicht korrigieren, du kannst alles so lassen wie es ist...siehe hier und das ist nur der Anfang..
 
Du schreibst

Nicht eine Seite deiner Wbsite ist ohne HTML Warnungen, Hinweisen und Fehlern

Das kann genauso bedeuten, dass bei einem normalen Aufruf Fehlermeldungen kommen. Da sollte man schon genauer sein.

Nur so ist das halt mit CM-Systemen, man hat auf vieles keinen Einfluss. Nur darum geht es hier auch nicht.
 
mischaef schrieb:
Nur so ist das halt mit CM-Systemen, man hat auf vieles keinen Einfluss.

Das ist nicht wahr, diese Fehler sind leicht zu beheben, das hat nichts mit dem CMS zutun..abgesehen, ich würde so ein CMS meiden der solch ein HTML schreibt, den dann will ich nicht wissen wie der php Code usw. ausschaut..

mischaef schrieb:
Nur darum geht es hier auch nicht.

Also sind dir die Fehler egal? ich glaube nicht das jemand Bock hat dir zu helfen wenn dir dein Code eh egal ist bzw. du das auf andere schiebst. HTML sollte immer sauber sein damit du eine Basis hast und hier schon mal zukünftige Probleme ausschließen kannst, ansonsten wird alles immer schlimmer, irgendwann kommt ein Update der Browser und deine Seite sieht dann nicht mehr so aus wie jetzt..dann stehst du dann und weißt nicht mehr weiter..aber warum erzähle ich dir das..es interessiert doch wahrscheinlich gar nicht...
 
Zurück
Oben