0 votes
in SoSci Survey (dt.) by s085548 (370 points)

Liebe Supportler,

ich möchte mit einer Schleife mehrere Einträge aus der Datenbank für Inhalte ziehen. $keys ist ein Array das die Schlüssel für die Abfrage weiterer Werte/Arrays aus der Datenbank enthält. $BW sind die aus der Datenbank gezogenen Arrays, deren Name sich mit jedem Durchlauf der Schleife verändern soll ($BW1, $BW2, ...).

Wenn ich den folgenden Code verwende:
<?php
for ($i=0, $size = count ($keys); $i <= $size; $i++) {
${'BW' . $i} = dbGet($keys[$i]);
}
?>

kommt "Warnung: Die Zeichenfolge ${ wird in Kürze gesperrt werden, bitte entfernen Sie die Zeichenfolge aus dem PHP-Code."

Gibt es eine andere Möglichkeit variable Variablennamen zu nutzen?

Beste Grüße

1 Answer

0 votes
by SoSci Survey (304k points)

Sie können ganz einfach ein Array verwenden:

$contents = array();
for ($i=0, $size = count ($keys); $i <= $size; $i++) {
  $contents['BW' . $i] = dbGet($keys[$i]);
}

Damit lässt sich fast alles machen, was man mit Variablen Variablennamen machen könnte.

by s085548 (370 points)
Das ist eine gute Idee. Allerdings erhalte ich leider die Fehlermeldung:

Fehler im Fragebogen: Undefined offset: 28
Zeile: 34

PHP-Code

031
032 $contents = array();
033 for ($i=0, $size = count ($keys); $i <= $size; $i++) {
034 $contents['BW' . $i] = dbGet($keys[$i]);
035 }

wobei Zeile 34 ROT markiert ist.

Mir ist nicht klar, was das bedeutet.
by SoSci Survey (304k points)
Das bedeutet vermutlich, dass die Varbale $keys keinen Index-Eintrag 28 hat.

Normalerweise sind Arrays beginnend mit der Zahl 0 nummeriert. Sie zählen aber nicht 0 bis 27 (`< $size`), sondern 0 bis 28. Das ist vermutlich einen Schritt zu weit.

Meine Vermutung ist, dass Sie eigentlich das hier haben möchten:

$contents = array();
for ($i=0, $size = count ($keys); $i < $size; $i++) {
  $contents['BW' . ($i + 1)] = dbGet($keys[$i]);
}

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...